作为一名Rails新手,我一开始使用的routes.rb是:
ActionController::Routing::Routes.draw do |map|
map.resources :events
map.connect 'affiliates/list', :controller => "affiliates", :action => "list"
map.connect 'affiliates/regenerate_thumb/:id', :controller => "affiliates", :action => "regenerate_thumb"
map.connect 'affiliates/state/:id.:format', :controller => "affiliates", :action => "find_by_state"
map.connect 'affiliates/getfeed', :controller => "affiliates", :action => "feed"
map.resources :affiliates, :has_many => :events
map.connect ":controller/:action"
map.connect '', :controller => "affiliates"
map.connect ":controller/:action/:id"
map.connect ":controller/:action/:id/:format"
end我正试着把它收紧。我已经做到了:
ActionController::Routing::Routes.draw do |map|
map.resources :events, :only => "index"
map.resources :affiliates do |affiliates|
affiliates.resources :has_many => :events
affiliates.resources :collection => { :list => :get, :regenerate_thumb => "regenerate_thumb" }
end
# map.connect 'affiliates/regenerate_thumb/:id', :controller => "affiliates", :action => "regenerate_thumb"
map.connect 'affiliates/state/:id.:format', :controller => "affiliates", :action => "find_by_state"
map.connect 'affiliates/getfeed', :controller => "affiliates", :action => "feed"
map.root :affiliates
end让我感到困惑的是路由和参数。例如,我意识到列表和索引之间的唯一区别是它是如何呈现的,而不是呈现什么。
有一个不同的动作(就像我现在做的那样)感觉是错误的,但我不能找出正确的方法。
谢谢
发布于 2010-02-02 04:21:58
你可以像这样重构它:
map.resources :events, :only => "index"
map.resources :affiliates, :has_many => :events, :collection => { :list => :get }, :member => { :regenerate_thumb => :get }
map.connect 'affiliates/state/:id.:format', :controller => "affiliates", :action => "find_by_state"
map.connect 'affiliates/getfeed', :controller => "affiliates", :action => "feed"
map.root :affiliates发布于 2010-04-17 22:30:17
标题是“为不同的布局服务”。问题出在哪里?
https://stackoverflow.com/questions/2177512
复制相似问题