【发布时间】:2010-11-24 02:31:51
【问题描述】:
我需要在一些资源中添加以下成员方法,有没有办法把它干掉?
member do
get :votes
post :up_vote
post :down_vote
end
在我的 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
现在,我的 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
查看我的内联 cmets,但我希望命名路由看起来像:main_users_comments_up_votes
【问题讨论】:
-
请看我的编辑。你能用你如何做命名路线来编辑你的问题吗?
-
在 'resources :cmets' 中嵌套 'votable_resources :cmets' 会让你更接近吗?
-
刚刚做了另一个编辑。将其嵌套在
resources :comments中的问题是 RESTful 操作对我不利。 -
我回去简化了,太复杂了。不确定 named_routes 是怎么回事,但我认为它与原始问题无关。
-
'main_users_cmets_up_votes' 的控制器和操作是什么?
标签: ruby-on-rails ruby-on-rails-3 rails-routing