Кажется, я нигде не могу его найти ... Как мне удалить / уничтожить / сбросить / очистить / очистить сеанс пользователя в Rails? Не одно значение, а целое.
133
Кажется, я нигде не могу его найти ... Как мне удалить / уничтожить / сбросить / очистить / очистить сеанс пользователя в Rails? Не одно значение, а целое.
Чтобы очистить все это, используйте метод reset_session в контроллере.
reset_session
Вот документация по этому методу: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
Сбрасывает сеанс, очищая все объекты, хранящиеся внутри, и инициализируя новый объект сеанса.
Удачи!
сессия в рельсах - это хэш-объект. Следовательно, любая функция, доступная для очистки хэша, будет работать с сессиями.
или если необходимо уничтожить определенные ключи:
Проверено в рельсах 3.2
добавленной
Люди упомянули,
session={}
что это плохая идея. Что касаетсяsession.clear
, комментирует Лобати. Похоже, вам, вероятно, лучше использовать reset_session [, чем session.clear], поскольку он выполняет некоторые другие действия по очистке, помимо того, что делает session.clear. Внутренне reset_session вызывает session.destroy , который сам вызывает clear, а также некоторые другие вещи.источник
reset_session
, так как он выполняет другую очистку, помимо того, чтоsession.clear
делает. Внутри себяreset_session
вызываетsession.destroy
, который сам вызываетclear
также некоторые другие вещи .удалить сеанс пользователя
источник
Чтобы очистить только определенные параметры, вы можете использовать:
источник
добавьте этот код в свой ApplicationController
(Не знаю, почему никто выше просто не упомянул этот код, поскольку он устранил мою проблему) http://apidock.com/rails/ActionController/RackDelegation/reset_session
источник
@_request.reset_session
иreset_session
оба работают, и, возможно, делают то же самое?