我已将每个 map.resources 行的前缀值添加到我的路由文件中。所以它看起来像这样:
map.resources :subjects, :path_prefix => ':company'
我什至为默认行为添加了这一行
map.connect ':company/:controller/:action/:id'
这是没有必要的(我相信),因为所有的路由都是用资源方法处理的。
我在 ApplicationController 的 before_filter 方法中获取了 :company 参数。一切正常。但是。
是否可以更改所有 *_path 方法的行为,即默认情况下它将为所有生成的 url 设置公司值,并使用从 url 中获取的值?为了使其完美运行,我必须为每个 _path 方法添加公司值(value)作为参数。我相信可以让它自动进行。
最佳答案
您应该覆盖 default_url_options在您的应用程序 Controller 中。
class ApplicationController > ActionController::Base
# ...
def default_url_options(options)
{ :company => current_company.id }
end
end
关于ruby-on-rails - 将默认值添加到 *_path 方法生成的路由的前缀中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1237399/