如何使用Devise:记得吗?

时间:2012-08-04 17:14:59

标签: ruby-on-rails devise remember-me

我正在制作Rails应用程序 我想实现一个“记住我”复选框,以便用户在下次使用Devise:rememberable时跳过输入密码。但我无法弄清楚如何实现。
如果您对此有任何想法,请向我展示一些示例代码。

2 个答案:

答案 0 :(得分:16)

在用户模型中添加: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 %>

我认为这就是你所需要的......

答案 1 :(得分:6)

如果您编写自己的身份验证策略,则可能会遇到可记住的问题。您的身份验证返回的资源对象(例如User)!方法需要负责从表单数据中设置resource.remember_me。这通常由父Authenticable的validate方法处理。如果您不使用此方法,则必须自己设置。