Вы должны иметь возможность делать все с вашего контроллера, используя комбинацию before_filter
и default_url_options
:
class MyController < ApplicationController
before_filter :set_a_entity
def set_a_entity
@a_entity = params['a_entity']
# or @a_entity = Entity.find(params['a_entity'])
end
# Rails 3
def url_options
{:a_entity => @a_entity}.merge(super)
end
# Rails 2
def default_url_options
{:a_entity => @entity}
end
end
Это не решает проблему установки начального значения @a_entity
, но это можно сделать из любого места (представление, контроллер и т. д.).
Если вы хотите, чтобы этот параметр передавался в нескольких контроллерах, вы можете заменить MyController < ApplicationController
на ApplicationController < ActionController::Base
, и он должен работать.
Надеюсь, это поможет.