Câu trả lời:
Để xóa toàn bộ, hãy sử dụng phương thức reset_session trong bộ điều khiển.
reset_session
Đây là tài liệu về phương pháp này: http://api.rubyonrails.org/groupes/ActionControll/Base.html#M000668
Đặt lại phiên bằng cách xóa tất cả các đối tượng được lưu trữ bên trong và khởi tạo một đối tượng phiên mới.
Chúc may mắn!
phiên trong rails là một đối tượng băm. Do đó, bất kỳ chức năng nào có sẵn để xóa hàm băm sẽ hoạt động với các phiên.
session.clear
hoặc nếu các khóa cụ thể phải bị hủy:
session.delete(key)
Đã thử nghiệm trên đường ray 3.2
thêm
Mọi người đã đề cập đến session={}
là một ý tưởng tồi. Về session.clear
, các ý kiến của lobati - Có vẻ như bạn có thể tốt hơn khi sử dụng reset_session [so với session.clear], vì nó có một số cách làm sạch khác ngoài những gì session.clear làm. Trong nội bộ, reset_session gọi session.destroy , bản thân nó cũng gọi rõ ràng một số nội dung khác.
reset_session
, vì nó làm một số việc khác ngoài việc session.clear
làm. Trong nội bộ, reset_session
các cuộc gọisession.destroy
, mà chính nó cũng gọi clear
một số thứ khác .
Để chỉ xóa một số tham số nhất định, bạn có thể sử dụng:
[:param1, :param2, :param3].each { |k| session.delete(k) }
thêm mã này vào ApplicationContoder của bạn
def reset_session
@_request.reset_session
end
(Không biết tại sao không ai ở trên chỉ đề cập đến mã này vì nó đã khắc phục vấn đề của tôi) http://apidock.com/rails/ActionControll/RackDelegation/reset_session
@_request.reset_session
và reset_session
cả hai đều làm việc và có thể làm điều tương tự?