将默认值添加到由* _path方法生成的路由的前缀中

时间:2009-08-06 07:25:13

标签: ruby-on-rails ruby rest routes

我在每个map.resources行中添加了我的路由文件前缀值。所以这一切看起来像这样:

map.resources :subjects, :path_prefix => ':company'

我甚至为默认行为添加了此行

map.connect ':company/:controller/:action/:id'

这是不必要的(我相信),因为所有的路线都是用资源方法处理的。

我在ApplicationController中的before_filter方法中获取:company param。一切正常。但

是否可以更改所有* _path方法的行为,默认情况下,它会为所有生成的网址设置公司值,并使用从网址中获取的网址?为了使它完美地工作,我必须为每个_path方法添加公司值作为参数。我相信它可以自动化。

1 个答案:

答案 0 :(得分:2)

您应该覆盖应用程序控制器中的default_url_options

class ApplicationController > ActionController::Base

  # ...

  def default_url_options(options)
    { :company => current_company.id }
  end

end
相关问题