2013-02-06 19 views
11

Nếu ActiveRecord :: Cửa hàng không được chấp nhận, phương pháp được đề xuất để duy trì phiên là gì? Cookie được mã hóa có lưu trữ tiêu chuẩn mới không? Điều gì xảy ra nếu bạn muốn duy trì> 4kb ở trạng thái?Phiên trong Rails 4

Trả lời

0

Tìm tệp có tên session_store.rb bên trong thư mục config/initializers của bạn. Ở đó bạn nên thiết lập loại phiên bạn muốn sử dụng. Một tiêu chuẩn, dựa trên cookie, phải giống như:

ProjectName::Application.config.session_store :cookie_store, key: '_project_name_session' 

Sau đó tất cả những gì bạn cần làm là gọi hàm băm session từ trong bộ điều khiển của bạn. Bạn có thể đặt bất kỳ giá trị nào ở đó và nó sẽ tồn tại giữa các yêu cầu.

Như trong Rails Guides:

config.session_store thường thiết lập trong config/initializers/session_store.rb và quy định cụ thể những gì lớp sử dụng để lưu trữ phiên. Giá trị có thể là: cookie_store là giá trị mặc định,: mem_cache_store và: bị tắt. Người cuối cùng yêu cầu Rails không xử lý các phiên. Bạn cũng có thể chỉ định các cửa hàng phiên tùy chỉnh (...)

+1

Tôi tò mò tại sao: active_record_store không được dùng nữa và thay thế tốt nhất là gì nếu tôi muốn duy trì trạng thái trên máy chủ thay vì ứng dụng khách. – Michael

+0

Tôi nghĩ cửa hàng active_record không được chấp nhận, nó chỉ là 'được tăng cường' để tăng tính mô đun của đường ray. –

6

Trong Rails 4, bao gồm gem 'activerecord-session_store' trong Gemfile của bạn và chạy gói cài đặt. Hoàn tất di chuyển và cấu hình theo ghi chú https://github.com/rails/activerecord-session_store.

Phương án thay thế khác là sử dụng đá quý 'dalli' để quản lý phiên.