Как получить доступ к многомерной хэш-сессии? - PullRequest
1 голос
/ 12 декабря 2010

Я использую метод сеанса Ruby on Rails, чтобы у меня был хэш сеанса [: user_params] примерно так:

password_confirmation: "test"
password: test
email: test@test.ij

Я могу получить к нему доступ, просто используя синтаксис сеанс [:user_params] в моем файле просмотра.

Теперь я хочу получить доступ только к параметру 'email', но пытаюсь использовать session [: user_params] [: email] , я получаю всегдапустое значение.Как получить доступ к этому значению?

Ответы [ 2 ]

2 голосов
/ 12 декабря 2010

Вы можете попробовать session[:user_params]['email'].Не уверен, что Rails будет сериализовать / десериализовать весь хэш сессии как HashWithIndifferentAccess или нет.

1 голос
/ 12 декабря 2010

Я не уверен, как вы настраиваете хеш, который вы храните в: user_params, но вот как я бы это сделал, и похоже, что он работает:

puts "  email: '#{session[:user_params][:email]}'"

session[:user_params] ||= {}
session[:user_params][:password_confirmation] = "test"
session[:user_params][:password] = "test"
session[:user_params][:email] = "test@test.ij"

Если вы поместите этот код в действие контроллера, то в первый раз увидите «» для электронного письма. Во второй раз он покажет «test@test.ij» для электронной почты. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...