#ruby-on-rails
#ruby-on-rails
Вопрос:
Я читаю Agile web Development, чтобы изучить Rails 3.0. Автор учит нас, как использовать сеансы, используя этот метод create в контроллере сеансов.
def create
if user = User.authenticate(params[:name], params[:password])
session[:user_id] = user.id
redirect_to admin_url
else
redirect_to login_url, :alert => "Invalid user/password combination"
end
end
В строке
сеанс [:идентификатор пользователя] = user.id
:user_id
существует ли где-нибудь символ до того, как он ему назначит user.id
? или этот символ: user_id создается в тот момент, когда он назначает user.id к нему? Существует ли определенное количество символов, принадлежащих этому «сеансу», или вы можете просто создать что-то с любым именем и назначить ему что-либо?
Ответ №1:
Он создается динамически «на лету». Вы можете увидеть, что находится в сеансе, используя отладчик и набрав p session
текст . Если вы храните только строковые данные, то вы можете хранить все, что захотите, хотя есть ограничения по размеру. Сеанс по умолчанию хранится в файле cookie, хотя вы также можете настроить свой SessionStore так, чтобы он также находился на стороне сервера.
Я не уверен, что вы можете изменить имя с помощью файла конфигурации, но session
хэш — это специальная переменная, которую использует Rails. Итак, вы должны придерживаться выполнения session[:my_var] = "whatever'
Комментарии:
1. итак, вы могли бы назвать это как-то иначе (предполагая, что вы не хотите следовать соглашениям об именах)?