2012-04-20 1 views
0

У меня есть действие index. И у меня есть действие print.Каков наилучший способ доставки группы объектов из одного действия в другое?

Я хотел бы принять @objects и передать их всем print от index.

Я думал сделать это в ссылке:

= link_to 'Print', print_path(@objects) 

Но, как вы можете себе представить, что, поскольку гигантскую связь, и с некоторым дурачеством, я получаю это ActiveRecord::Relation:0x007ffc3a5f8000 получение прошло.

Что было бы лучшим способом передать мою переменную @objects этому второстепенному действию?

+3

Это должно помочь: http://stackoverflow.com/questions/10104652/rail-3-instance-variable-not-available-after -reirection/10104776 # 10104776 – jdoe

+0

Это просто изменило мою жизнь. Большое спасибо jdoe. – Trip

+0

Тогда переверните этот ответ, и мы даже!))) – jdoe

ответ

0

Так супер особенное спасибо jdoe, я смог понять это из-за понимания дзен, что Rails без гражданства.

Поэтому я инстанцирован мою переменную в контроллере, как

def index 
    session[:objects] = @objects.map(&:id) 
end 

Вместо того, что делает его равным объектам. Я просто сопоставил идентификаторы.

Эта переменная сеанса теперь доступна на неопределенный срок по всему сайту.

Тогда в моем другом действии я их называю так:

def print 
    @objects = [] 
    session[:objects].each{|object|@objects << Object.find(object)} 
end 
Смежные вопросы