Время жизни рельсов переменной params - PullRequest
0 голосов
/ 10 марта 2012

В стандартном методе «index» контроллера я установил некоторое значение в хэше params, чтобы использовать его в представлении, если оно еще не инициализировано, в другом случае ничего не делать.использовать включить?В методе params [: my_value] в представлении есть ошибка при оценке nil.include?

Почему возникает такая ошибка, если params [: my_value] не может быть nilЕсли это ноль, его значение должно быть инициализировано с {}, это то, что делает оператор || =.В чем здесь может быть проблема?

Ответы [ 2 ]

0 голосов
/ 10 марта 2012

параметры рельсов существуют до завершения потока запросов

Вы можете получить доступ к params внутри страницы представления, которая будет отображаться, но параметры не будут доступны, если вы перенаправляете на другую страницу внутри действия контроллера, так как прерывает поток запросов.

0 голосов
/ 10 марта 2012

Решение было в методе слияния. Оказалось, что

a = b.merge(a) 

и

a.merge(b) {|key, v1, v2| v1 }

делают разные вещи и в первом случае (что было неправильно) где-то появляется ноль. Я еще не выяснил, почему это так, потому что метод слияния всегда возвращает хэш, и когда я заменял первый вариант вторым, все было в порядке. Так что я не вижу никаких проблем ...

...