我需要将会话var初始化为数组。 我这样做的地方?
当我尝试这样做时:
session[:complains_id] << params[:id]
我收到此消息
当你没想到它时,你有一个零对象! 您可能期望一个Array实例。 在评估nil时发生错误。&lt;&lt;
我知道我必须初始化var,但我不知道在哪里。
谢谢!
答案 0 :(得分:16)
只是做:
(session[:complains_id] ||= []) << params[:id]
这是说:
如果session[:complains_id]
返回
零,将其设置为[]。
追加
params[:id]
来
session[:complains_id]
演示:
ruby-1.9.2-p136 :007 > (session[:complains_id] ||= []) << 5
=> [5]
ruby-1.9.2-p136 :008 > (session[:complains_id] ||= []) << 3
=> [5, 3]
ruby-1.9.2-p136 :009 > (session[:complains_id] ||= []) << 1
=> [5, 3, 1]