2011-04-12 49 views
3

我需要初始化一個會話var作爲數組。 我在哪裏做?在Rails 3中初始化一個會話var作爲數組

當我嘗試這樣做:

session[:complains_id] << params[:id] 

我得到這個消息

你有一個零對象時,你沒想到吧! 您可能預期了Array的一個實例。 評估爲零時發生錯誤。 < <

我知道我必須初始化var但我不知道在哪裏。

謝謝!

回答

16

只要做到:

(session[:complains_id] ||= []) << params[:id] 

這是說:

  1. 如果session[:complains_id]回報 爲零,將其設置爲[]。

  2. 追加 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] 
+0

非常好的awnser :) – Francois 2012-02-02 08:43:14

+0

我怎麼能採取數組的元素我們? – Danpe 2013-10-07 03:23:43

+0

但是,當我渲染會議[:id],我得到以下內容:「35313131」。元素不分隔或任何東西。 – Varun 2015-08-10 04:38:38