【发布时间】:2012-08-02 08:58:06
【问题描述】:
我正在制作一个 Rails 应用程序。
我想实现一个复选框“记住我”,以便用户下次使用 Devise:rememberable 跳过输入密码。但我不知道如何实现。
如果您对此有任何想法,请向我展示一些示例代码。
【问题讨论】:
标签: ruby-on-rails devise remember-me
我正在制作一个 Rails 应用程序。
我想实现一个复选框“记住我”,以便用户下次使用 Devise:rememberable 跳过输入密码。但我不知道如何实现。
如果您对此有任何想法,请向我展示一些示例代码。
【问题讨论】:
标签: ruby-on-rails devise remember-me
在您的用户模型中添加: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
如果您不使用设计默认视图,请将复选框添加到您的视图中:
<%= f.check_box :remember_me %> <%= f.label :remember_me %>
我想这就是你所需要的……
【讨论】:
如果您编写自己的身份验证策略,您可能会遇到可记忆的问题。您的身份验证返回的资源对象(例如User)!方法需要负责从表单数据中设置resource.remember_me。这通常由父 Authenticable 的 validate 方法处理。如果不使用此方法,则必须自己设置。
【讨论】: