2011-09-22 35 views
18

Đây là các hướng dẫn để thêm mô-đun vào cài đặt Devise hiện có: https://github.com/plataformatec/devise/wiki/How-To:-change-an-already-existing-table-to-add-devise-required-columnsLàm cách nào để thêm mô-đun 'thời gian chờ' của Devise vào cài đặt Devise hiện có? - Rails 3.1

Nhưng dường như tôi không thể định vị các cột cần thiết cho timeoutable.

Tôi đã tìm các trường mà timeoutable yêu cầu trong thư viện Devise: https://github.com/plataformatec/devise/blob/master/lib/devise/schema.rb - nhưng không có phương thức nào như vậy trong tệp lược đồ đó.

mô hình

Các chỉ có một phương pháp tùy chỉnh không có tham chiếu đến cột: http://rdoc.info/github/plataformatec/devise/master/Devise/Models/Timeoutable

Làm thế nào để thêm chức năng đó?

Cảm ơn.

+0

Liên kết đầu tiên của bạn đã cung cấp tất cả các câu trả lời! thanks – carbonr

Trả lời

20

timeoutable đề cập đến thời gian chờ của phiên đăng nhập. Không cần thêm cột nào, chỉ cần thêm cột vào mô hình của bạn.

Móc timeoutable chứa tất cả sự kỳ diệu (nguồn: https://github.com/plataformatec/devise/blob/master/lib/devise/hooks/timeoutable.rb)

+1

Không có cột nào được yêu cầu vì thời gian yêu cầu cuối cùng của người dùng được lưu trữ trong phiên. –

14

Bạn chỉ cần thêm timeoutable để mô hình người dùng của bạn:

devise :timeoutable 

Và đặt thời gian khoảng thời gian trong config/initializers/devise.rb:

# ==> Configuration for :timeoutable 
# The time you want to timeout the user session without activity. After this 
# time the user will be asked for credentials again. Default is 30 minutes. 
config.timeout_in = 30.minutes 
+2

Bạn cũng cần đảm bảo bạn đã chạy đúng di chuyển để thêm cột vào cơ sở dữ liệu. – iamryandrake

+4

: thời gian chờ không yêu cầu bất kỳ cột bổ sung nào. Xem câu trả lời ở trên. – colsen

+0

Tôi đã cố gắng để đặt nó ngay lập tức, nhưng nhìn vào mã tôi thấy rằng cột last_request_at được đọc vì vậy nếu bạn không có nó, bạn sẽ không thể sử dụng nó. – Lomefin

Các vấn đề liên quan