添加 devise:confirmable 到 2 个模型

add devise:confirmable to 2 models

有人可以给我一个例子,说明如何使用现有数据库向 2 个不同的模型添加设计,我有 2 个模型,客户和 vendor.If 我只是在两个模型上添加 :confirmable 并进行迁移 rails g migration add_confirmable_to_devise 迁移数据库后,是否会在两个模型中包含可确认选项?

不,您必须创建两个单独的迁移:

rails g迁移add_devise_fields_to_customer

class AddDeviseFieldsToCustomer < ActiveRecord::Migration
  def change
    # Confirmable columns
    add_column :customers, :confirmation_token, :string
    add_column :customers, :confirmed_at, :datetime
    add_column :customers, :confirmation_sent_at, :datetime
    add_column :customers, :unconfirmed_email, :string
  end
end

rails g迁移add_devise_fields_to_vendor

class AddDeviseFieldsToVendor < ActiveRecord::Migration
  def change
    # Confirmable columns
    add_column :vendors, :confirmation_token, :string
    add_column :vendors, :confirmed_at, :datetime
    add_column :vendors, :confirmation_sent_at, :datetime
    add_column :vendors, :unconfirmed_email, :string
  end
end

那只是为了 Confirmable,因为那是您指定的模块。如果您想要其他设计模块(Trackable、DatabaseAuthenticatable 等),您也需要将这些列添加到迁移中。

您还必须将 :confirmable(以及您想要的任何其他功能)添加到模型本身。