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

标签 ruby-on-rails ruby rest routes

我已将每个 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/

相关文章:

ruby-on-rails - 辅助测试中未定义的局部变量或方法 `main_app'

C:通过HTTP请求上传文件到Google Drive的错误408响应

ios - 我应该为将从 JSON 解析的对象模型的属性使用可选的吗?

ruby-on-rails - 无法推送到 Heroku:Sprockets::FileNotFound:找不到 application.css

ruby-on-rails - rails 4 : Redirect to another action with js

ruby-on-rails - AngularJS 返回值如何转换为整数?

ruby - Chef 11 : any way to turn attributes into a ruby hash?

mysql - Ruby 和 Sinatra,无法将散列密码与 BCrypt 进行比较

html - 您如何让 simple_form 将基类用于 url 而不是子类?

rest - 支持 RESTful 服务 - 我应该使用 Pragma、Cookie、自定义 header 还是其他东西来识别客户端 session 和事务?