2012-04-20 45 views
0

我有一個行動index。我有一個print的行動。將一組對象從一個動作傳遞到另一個動作的最佳方式是什麼?

我想採取@objects,並從index全部通過print

我想在一個鏈接這樣的:

= link_to 'Print', print_path(@objects) 

但是,正如你可能想象的,因爲一個巨大的鏈接,並與一些蠢事,我得到這個ActiveRecord::Relation:0x007ffc3a5f8000獲得通過。

什麼是將我的@objects變量傳遞給次要操作的最佳方式是什麼?

+3

這應有助於:http://stackoverflow.com/questions/10104652/rail-3-instance-variable-not-available-after -redirection/10104776#10104776 – jdoe 2012-04-20 19:00:55

+0

這只是改變了我的生活。非常感謝jdoe。 – Trip 2012-04-20 19:04:04

+0

然後upvote這個答案,我們甚至! ))) – jdoe 2012-04-20 19:05:39

回答

0

所以特別感謝jdoe,通過了解Rails是無狀態的,我能夠理解這一點。

因此,我實例化我的變量在控制器

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

而不是使之等於對象。我只是映射了ID的。

此會話變量現在可以在整個網站中無限期地訪問。

然後在我的其他動作我打電話給他們,像這樣:

def print 
    @objects = [] 
    session[:objects].each{|object|@objects << Object.find(object)} 
end 
相關問題