我正在尝试设置这样的路线:
GET /settings/ PUT /settings/ GET /settings/photos PUT /settings/photos
这是我为其设置的路由代码:
#I just do this for code reuse
get = { :method => :get }
put = { :method => :put }
pub.settings '/settings', :controller => :settings, :action => :index, :conditions => get
pub.with_options :controller => :settings, :path_prefix => "/settings", :name_prefix => "settings_" do |settings|
settings.update '', :action => :update, :conditions => put
settings.photos '/photos', :action => :photos, :conditions => get
settings.photos_update '/photos', :action => :photos_update, :conditions => :put
end
这可行,但如果您注意到第一条路线“pub.settings”在 mapped_options 块之外。
如果我是待办事项
pub.with_options :controller => :settings, :path_prefix => "/settings", :name_prefix => "settings_" do |settings|
settings.root '', :action => :index, :conditions => get
settings.update '', :action => :update, :conditions => put
settings.photos '/photos', :action => :photos, :conditions => get
settings.photos_update '/photos', :action => :photos_update, :conditions => :put
end
然后我会得到(在 rake 路由中)设置的路径将是“settings_root_path”而不是“settings_path”
有谁知道如何将它包含到块中并且仍然将路由函数名称命名为“settings_path”?