default_url_options and rails 3
To set url options for current request use something like this in your controller:
class ApplicationController < ActionController::Base
def url_options
{ :profile => current_profile }.merge(super)
end
end
Now, :profile => current_profile will be automerge to path/url parameters.
Example routing:
scope ":profile" do
resources :comments
end
Just write:
comments_path
and if current_profile has set to_param to 'lucas':
/lucas/comments
I believe the preferred method is to now tell the router to handle this:
Rails.application.routes.default_url_options[:foo]= 'bar'
You can put this line in either routes.rb
or an initializer. Whichever you would prefer. You could even put it in your environment configs if the values change based on your environment.