Tôi dường như không thể tìm thấy ở bất cứ đâu ... Làm cách nào để xóa/hủy/đặt lại/trống/xóa phiên của người dùng trong Rails? Không chỉ là một giá trị mà là toàn bộ ..Làm thế nào để trống/hủy một phiên trong đường ray?
Trả lời
Để xóa toàn bộ điều, hãy sử dụng phương pháp reset_session trong bộ điều khiển.
reset_session
Dưới đây là các tài liệu về phương pháp này: http://api.rubyonrails.org/classes/ActionController/Base.html#M000668
Resets phiên bằng cách xóa bỏ tất cả các đối tượng được lưu trữ trong và khởi tạo một đối tượng session mới.
Chúc may mắn!
phiên trong đường ray là đối tượng băm. Do đó, bất kỳ hàm nào có sẵn để xóa băm sẽ hoạt động với các phiên.
session.clear
hoặc nếu phím cụ thể phải bị tiêu diệt:
session.delete(key)
Tested trong đường ray 3.2
Bất kỳ ai có bất kỳ suy nghĩ nào về thành tích của phương pháp này so với phương pháp được đề xuất bởi Gdeglin? –
Điều này có thể được sử dụng khi bạn muốn giữ lại các thông số khác nhưng xóa một cặp giá trị khóa cụ thể. – Lavixu
Tôi cho rằng tôi đang đề cập đến việc sử dụng 'session.clear' hoặc' session = {} 'so với việc sử dụng' reset_session'. Họ có giống nhau không? –
Để xóa chỉ số nhất định, bạn có thể sử dụng:
[:param1, :param2, :param3].each { |k| session.delete(k) }
để xóa phiên của người dùng
session.delete(:user_id)
Cẩn thận, bạn có thể xóa bản ghi người dùng khỏi cơ sở dữ liệu! – Arthur
@Arthur Điều đó không đúng. Nhưng bạn sẽ chỉ xóa khóa: user_id khỏi phiên chứ không phải toàn bộ phiên –
thêm mã này vào ApplicationController bạn
def reset_session
@_request.reset_session
end
(Dont biết tại sao không có ai ở trên chỉ đề cập đến mã này vì nó cố định vấn đề của tôi) http://apidock.com/rails/ActionController/RackDelegation/reset_session
Chỉ một phiên làm việc cho tôi. – amingilani
- 1. Làm thế nào để gửi lại js.haml trong đường ray
- 2. Làm thế nào để bạn sử dụng nhiều phiên bản đường ray với rbenv?
- 3. Làm thế nào để kiểm tra xem phiên đường ray đã được tải chưa?
- 4. Làm thế nào để nội tuyến css khi sử dụng đường ray tài sản đường ray
- 5. Làm thế nào để làm cho đường ray f.select chọn
- 6. Làm thế nào để bạn xóa một mục duy nhất từ một ruby trên phiên đường ray?
- 7. Làm thế nào để làm một hình thức phi mô hình trong ruby trên đường ray?
- 8. Làm thế nào để kiểm tra đường ray ETag caching?
- 9. Cách xóa bảng phiên đường ray
- 10. Làm cách nào để chuyển đổi giữa đường ray 3.2.13 và đường ray 4.0.0?
- 11. Làm thế nào để tự động gọi các tuyến đường trợ giúp trong đường ray?
- 12. Làm thế nào để một NOT html_encode biến trong đường ray?
- 13. Làm thế nào để tải lên một tập tin trong ruby trên đường ray?
- 14. trong đường ray, làm thế nào để trả lại hồ sơ như một tập tin csv
- 15. Làm thế nào để thiết lập một trường chỉ đọc trong đường ray 3.1.0 lượt xem?
- 16. Làm thế nào để thay đổi tuyến đường trong ruby trên đường ray?
- 17. In phiên bản Đường ray trong chế độ xem?
- 18. Làm cách nào để biết phiên bản ứng dụng đường ray nào đang sử dụng
- 19. Làm cách nào để xóa tất cả các phiên đường ray?
- 20. cách chú thích các mô hình đường ray trong đường ray phiên bản 3.2.1
- 21. Làm thế nào để làm cho một tập tin từ xa với đường ray
- 22. Làm thế nào để nói ruby trên đường ray, không phải để chèn vào một cột?
- 23. Làm cách nào để xác thực ngày trong đường ray?
- 24. làm thế nào để lấy ID lại từ một URL bằng đường ray
- 25. Làm thế nào để thêm thuộc tính lớp để chọn thẻ trong đường ray 3
- 26. Làm thế nào để bạn áp dụng một miếng vá lên ruby trên đường ray?
- 27. làm thế nào để xây dựng một nhà cung cấp mở với ruby trên đường ray
- 28. Làm thế nào để chuyển các truy vấn để thực hiện hiệu quả trong đường ray?
- 29. Làm thế nào tôi có thể sử dụng đường ray helper "distance_of_time_in_words" trong ruby cũ đồng bằng (không đường ray)
- 30. Làm thế nào để ngăn chặn một bộ điều khiển đường ray thực hiện?
Đối với phiên cơ sở dữ liệu dựa trên (mà bạn nên có thể sử dụng) bạn có thể hết hạn thông qua truy vấn: http://guides.rubyonrails.org/security.html#session-expiry – m33lky