Инициализируйте сеанс var как массив в Rails 3 - PullRequest
3 голосов
/ 12 апреля 2011

Мне нужно инициализировать сеанс var как массив.Где я это делаю?

когда я пытаюсь это сделать:

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

я получаю это сообщение

У вас есть нулевой объект, когда вы этого не сделалиожидайте этого!Возможно, вы ожидали экземпляр Array.Произошла ошибка при оценке nil. << </p>

Я знаю, что мне нужно инициализировать var, но я не знаю, где.

Спасибо!

1 Ответ

16 голосов
/ 12 апреля 2011

Просто сделайте:

  (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] 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...