如何使用Devise:记得吗?
我正在制作一个Rails应用程序。
我想实现一个“记住我”的复选框,以便用户在下次使用Devise:rememberable时跳过输入密码。但我无法弄清楚如何实现。
如果您对此有任何想法,请向我展示一些示例代码。
在用户模型中添加:rememberable
选项
class User < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :token_authenticatable, :lockable, :omniauthable # ... end
创建迁移以在用户表中添加remember_created_at
列
class AddRememberCreatedAtToUsers < ActiveRecord::Migration def change add_column :users, :remember_created_at, :datetime end end
如果您未使用Devise默认视图,请将复选框添加到视图中:
<%= f.check_box :remember_me %> <%= f.label :remember_me %>
我认为这就是你所需要的......
如果您编写自己的身份validation策略,则可能会遇到可记住的问题。 您的身份validation返回的资源对象(例如User
)! 方法需要负责从表单数据中设置resource.remember_me
。 这通常由父Authenticable的validate方法处理。 如果您不使用此方法,则必须自己设置。