guc*_*cki 17 actioncontroller ruby-on-rails-3
由于不推荐使用ActionController :: Base#default_url_options,我想知道如何在rails3中设置默认的url选项.默认URL选项不是静态的,而是依赖于当前请求.
http://apidock.com/rails/ActionController/Base/default_url_options
谢谢,科林
Dyl*_*kow 24
我相信首选的方法是告诉路由器处理这个:
Rails.application.routes.default_url_options[:foo]= 'bar'
Run Code Online (Sandbox Code Playgroud)
您可以将此行放在其中一个routes.rb或初始化器中.无论你喜欢什么.如果值根据您的环境而变化,您甚至可以将其置于环境配置中.
Luk*_*iwa 24
要为当前请求设置url选项,请在控制器中使用以下内容:
class ApplicationController < ActionController::Base
def url_options
{ :profile => current_profile }.merge(super)
end
end
Run Code Online (Sandbox Code Playgroud)
现在,:profile => current_profile将自动注册到path/url参数.
路由示例:
scope ":profile" do
resources :comments
end
Run Code Online (Sandbox Code Playgroud)
写吧:
comments_path
Run Code Online (Sandbox Code Playgroud)
如果current_profile将to_param设置为'lucas':
/lucas/comments
Run Code Online (Sandbox Code Playgroud)