【问题标题】:Combining Option Routes in Rails 2.3在 Rails 2.3 中组合选项路由
【发布时间】:2010-08-18 14:32:33
【问题描述】:

我正在尝试设置这样的路线:

获取/设置/ 放置/设置/ 获取/设置/照片 PUT /设置/照片

这是我为其设置的路由代码:

#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”?

【问题讨论】:

    标签: ruby-on-rails ruby routing block rest


    【解决方案1】:

    Rails 有一个:path_prefix:path_names:name_prefix,它们可以帮助控制帮助器的生成方式。 rails routing guide 有几个例子可能会有所帮助。

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

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

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

    【讨论】:

    • 这样的定义给出了错误 settings.root :action => :index, :name_prefix => nil, :conditions => get 给出了 root_path 而不是 settings_path
    【解决方案2】:
     settings.settings  '', :action => :index, :conditions => get, :name_prefix => ''
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 2011-10-01
      相关资源
      最近更新 更多