Jawaban:
Untuk menghapus semuanya gunakan metode reset_session di controller.
reset_session
Berikut dokumentasi tentang metode ini: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
Mereset sesi dengan membersihkan semua objek yang disimpan di dalam dan menginisialisasi objek sesi baru.
Semoga berhasil!
sesi dalam rel adalah objek hash. Karenanya setiap fungsi yang tersedia untuk membersihkan hash akan bekerja dengan sesi.
session.clear
atau jika kunci tertentu harus dihancurkan:
session.delete(key)
Diuji dalam rel 3.2
ditambahkan
Orang-orang yang disebutkan oleh session={}
adalah ide yang buruk. Mengenai session.clear
, komentar Lobati - Sepertinya Anda mungkin lebih baik menggunakan reset_session [daripada session.clear], seperti halnya beberapa pembersihan lainnya di luar apa yang dilakukan session.clear. Secara internal, reset_session panggilan session.destroy , yang dengan sendirinya panggilan jelas juga beberapa hal lainnya.
reset_session
, seperti halnya beberapa pembersihan lainnya session.clear
. Secara internal, reset_session
panggilansession.destroy
, yang dengan sendirinya panggilan clear
juga beberapa hal lainnya .
Untuk menghapus hanya parameter tertentu, Anda dapat menggunakan:
[:param1, :param2, :param3].each { |k| session.delete(k) }
tambahkan kode ini ke ApplicationController Anda
def reset_session
@_request.reset_session
end
(Jangan tahu mengapa tidak ada yang di atas hanya menyebutkan kode ini karena ini memperbaiki masalah saya) http://apidock.com/rails/ActionController/RackDelegation/reset_session
@_request.reset_session
dan reset_session
keduanya berfungsi dan mungkin melakukan hal yang sama?