Если вы хотите поделиться значением между методами одного и того же экземпляра контроллера, тогда
объявить переменную экземпляра:
class BarsController < UsersController
before_filter :init_foo_list
def method1
render :method2
end
def method2
@foo_list.each do | item|
# do something
end
end
def init_foo_list
@foo_list ||= ['Money', 'Animals', 'Ummagumma']
end
end
Если вы хотите разделить значение между двумя контроллерами во время сеанса, то:
class BarsController < UsersController
before_filter :init_foo_list
def method1
render :controller => "FoosController", :action => "method2"
end
def init_foo_list
params[:shared_param__] ||= ['Money', 'Animals', 'Ummagumma']
end
end
class FoosController < UsersController
def method2
params[:shared_param__].each do | item|
# do something
end
end
end
Дайте уникальное имя общему ключу параметра, чтобы избежать конфликта с существующими ключами.
Другой вариант - сохранить общий массив в сеансе и удалить его до окончательного рендеринга.