我有一个动作index
。我有一个print
动作。
我想把@objects
它们全部传给print
from index
。
我正在考虑在链接中这样做:
= link_to 'Print', print_path(@objects)
但正如你可能想象的那样,因为一个巨大的链接,加上一些愚蠢的行为,我得到了这个ActiveRecord::Relation:0x007ffc3a5f8000
通过。
将我的@objects
变量传递给此辅助操作的最佳方法是什么?
我有一个动作index
。我有一个print
动作。
我想把@objects
它们全部传给print
from index
。
我正在考虑在链接中这样做:
= link_to 'Print', print_path(@objects)
但正如你可能想象的那样,因为一个巨大的链接,加上一些愚蠢的行为,我得到了这个ActiveRecord::Relation:0x007ffc3a5f8000
通过。
将我的@objects
变量传递给此辅助操作的最佳方法是什么?
非常特别感谢jdoe,我能够通过对Rails是无状态的禅宗理解来解决这个问题。
因此,我在控制器中将我的变量实例化为
def index
session[:objects] = @objects.map(&:id)
end
而不是使其等于对象。我只是映射了ID。
这个会话变量现在可以在整个站点中无限地访问。
然后在我的另一个动作中,我这样称呼它们:
def print
@objects = []
session[:objects].each{|object|@objects << Object.find(object)}
end