0
class Advertiser < ActiveRecord::Base
devise :database_authenticatable, :registerable,:recoverable, :rememberable, :trackable, :validatable,:confirmable

acts_as_paranoid    
end

我首先添加了 Devise gem,没有可确认的选项。然后我后来在此迁移中添加了可确认选项:

class AddConfirmableToDevise < ActiveRecord::Migration
def up
add_column :advertisers, :confirmation_token, :string
add_column :advertisers, :confirmed_at, :datetime
add_column :advertisers, :confirmation_sent_at, :datetime

add_index :advertisers, :confirmation_token, :unique => true

Advertiser.update_all(:confirmed_at => Time.now)

end
end

当我运行迁移时,它给出了一个错误

PG::UndefinedColumn: ERROR:  column advertisers.deleted_at does not exist
LINE 1: ...onfirmed_at" = '2015-11-05 06:24:26.513079' WHERE "advertise...
4

1 回答 1

0

像这样更改迁移文件:

class AddConfirmableToDevise < ActiveRecord::Migration
  def up
    add_column :advertisers, :confirmation_token, :string
    add_column :advertisers, :confirmed_at, :datetime
    add_column :advertisers, :confirmation_sent_at, :datetime
    add_index :advertisers, :confirmation_token, unique: true
    add_column :advertisers, :deleted_at, :time
    execute("UPDATE advertisers SET confirmed_at = NOW()")
  end

  def down
    remove_columns :advertisers, :confirmation_token, :confirmed_at, :confirmation_sent_at
  end 
end

如需进一步参考,请参阅设计

于 2015-11-05T07:02:06.500 回答