4

デバイスでユーザーのパスワードを回復しようとしていますが、次のエラーが発生します

undefined method `reset_password_sent_at=' for #<User:0x007fb78cfafb68>

私はRuby on Railsを初めて使用するので、誰でもこれを手伝ってもらえますか?

パスワードを回復し、Devise を使用してユーザーにメールを送信する最良の方法は何ですか? どうもありがとうございました...

私はデバイスを使用しています(2.2.3)

User.rb

require 'digest/md5'

class User < ActiveRecord::Base


  # Setup accessible (or protected) attributes for your model
  belongs_to :shop

  before_create :compute_email_md5

  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable,
    :recoverable,
    :rememberable,
    :trackable,
    :validatable,
    :token_authenticatable


  # Setup accessible (or protected) attributes for your model
  attr_accessible :email,
    :email_md5,
    :password,
    :password_confirmation,
    :shop_id,
    :role,
    :terms,
    :name,
    :notify_on_order_received

  validates :terms, :acceptance => true, :on => :create
end

解決策は、reset_password_sent_at列をユーザーテーブルに追加することです

4

1 に答える 1

5

お気づきのとおり、passord の回復には、モデルにreset_password_sent_at列が必要です。移行を介して追加すると、この問題が解決するはずです。

これが起こっている理由については、Devise 対応モデル (ユーザー) を最初に生成した後にパスワード回復 (:recoverableモジュール)を追加したと思います。そのため、Devise のジェネレーターはその列を作成しませんでした。

于 2013-02-19T17:37:38.630 に答える