Ruby on rails 轨道3路线:干构件

Ruby on rails 轨道3路线:干构件,ruby-on-rails,ruby-on-rails-3,rails-routing,Ruby On Rails,Ruby On Rails 3,Rails Routing,我需要将以下成员方法添加到一些资源中,有没有办法使其干涸 member do get :votes post :up_vote post :down_vote end 在my routes.rb中 resources :news do resources :comments do member do get :votes post :up_vote post :down_vote

我需要将以下成员方法添加到一些资源中,有没有办法使其干涸

 member do
    get   :votes
    post  :up_vote
    post  :down_vote
  end
在my routes.rb中

resources :news do
  resources :comments do
     member do
        get   :votes
        post  :up_vote
        post  :down_vote
      end
  end
end

resources :downloads do
  resources :whatever do
     member do
        get   :votes
        post  :up_vote
        post  :down_vote
      end
  end
end
编辑

实际上,我已经将其移动到一个模块中,如下所示:

module Votable
  module RoutingMethods
    def votable_resources
      member do
        get   "up_votes"
        get   "down_votes"
        post  "up_vote"
        post  "down_vote"
      end
    end
  end # RoutingMethods
end
现在,my routes.rb如下所示:

require 'votable'

include Votable::RoutingMethods

MyApp::Application.routes.draw do

  namespace :main, :path => "/" do
    resources :users do 
      resources :comments do
        votable_resources
      end
    end
  end

end

查看我的内联注释,但我希望命名的路由看起来像:
main\u users\u comments\u up\u vots

您不能在路由文件中定义一个方法吗

def foo
  member do
   get   :votes
   post  :up_vote
   post  :down_vote
  end
end


resources :news do
 resources :comments do
   foo
 end
end
编辑 我以前从未使用过这种技术。当我做“耙路”的时候,它似乎起了作用。无论如何,routes文件只是Ruby代码。请注意您定义的方法的名称,因为它是在ActionDispatch::Routing::Mapper的实例中定义的

# routes.rb

MyApp::Application.routes.draw do
  puts self
  puts y self.methods.sort
end

# Terminal
> rake routes

我遇到的一个问题是将其保留在命名路由的范围内。正在查看使用过程。请查看我的编辑。你能编辑你的问题吗?你是如何完成命名路由的?在“资源:评论”中嵌套“votable_resources:comments”会让你更接近吗?刚刚进行了另一次编辑。将它嵌套在
参考资料:comments
中的问题是RESTful操作对我来说太难了。我回去简化了它,变得太复杂了。不确定命名的路由出了什么问题,但我认为这与最初的问题无关。“主要用户、评论、投票”的控制器和操作是什么?