Đây là mã của tôi:Làm cách nào để xóa tất cả các phiên đường ray?
if session[:firsttimestart].nil?
else
@firsttime = false
end
if @firsttime == true
initglobals()
end
session[:firsttimestart]=false
Vấn đề là khi tôi tắt máy chủ và trở lại các ứng dụng, phiên [: firsttimestart] vẫn còn sai. Nó bằng cách nào đó lưu trữ biến này trong hệ thống của tôi mà không có ngày hết hạn để iniglobals() không được gọi. Tôi đã cố gắng sử dụng rake tmp: rõ ràng và nó không hoạt động. Làm thế nào tôi có thể xóa tất cả các phiên đang sử dụng trong hệ thống của tôi mỗi lần tôi khởi động lại máy chủ của mình?
Mặc dù, điều này có thể không làm giảm không gian đĩa DB của bạn. Trong postgres, tôi cần phải chạy sau đây sau khi xóa các phiên: 'VACUUM FULL ANALYZE;' và 'REINDEX table sessions;'. Trong các dbs quan hệ khác, bạn có thể cần tối ưu hóa nó. –
Xem câu trả lời của @ Yevgeniy bên dưới – aceofspades
Nếu bạn không sử dụng DB để lưu phiên, trên Rails 3, bạn chỉ cần thay đổi mã bí mật của ứng dụng và tất cả các phiên sẽ được đặt lại. Để thực hiện điều này, hãy chạy 'rake secret' trên dòng lệnh để tạo ra một bí mật mới và sau đó sao chép/dán nó vào tệp config/initializers/secret_token.rb của bạn. – Alberto