我正在设置这样的路线:

获取 /设置 /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”在映射_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

然后,我会(在耙路上)设置的路径将是“ settings_root_path”而不是“ settings_path”

有人知道如何将其包括在块中,并且仍然将路由函数名称称为“ settings_path”?

有帮助吗?

解决方案

铁轨有一个 :path_prefix, :path_names, , 和 :name_prefix 这有助于控制如何生成帮助者。这 铁轨路由指南 有一些可能会有所帮助的例子。

:path_names 控制在休息路线中使用的名称:path_prefix 设置生成助手时使用的路径。:name_prefix 将生成助手名称的前缀设置为前缀。此前缀可能设置为 nil 或empty_string。

对于您的情况,我会尝试(尽管未经测试):

settings.root '', :action => :index, :name_prefix => nil, :conditions => get

其他提示

 settings.settings  '', :action => :index, :conditions => get, :name_prefix => ''
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top