我在每个map.resources行中添加了我的路由文件前缀值。所以这一切看起来像这样:
map.resources :subjects, :path_prefix => ':company'
我甚至为默认行为添加了此行
map.connect ':company/:controller/:action/:id'
这是不必要的(我相信),因为所有的路线都是用资源方法处理的。
我在ApplicationController中的before_filter方法中获取:company param。一切正常。但
是否可以更改所有* _path方法的行为,默认情况下,它会为所有生成的网址设置公司值,并使用从网址中获取的网址?为了使它完美地工作,我必须为每个_path方法添加公司值作为参数。我相信它可以自动化。
答案 0 :(得分:2)
您应该覆盖应用程序控制器中的default_url_options。
class ApplicationController > ActionController::Base
# ...
def default_url_options(options)
{ :company => current_company.id }
end
end