【问题标题】:add devise:confirmable to 2 models将设计:可确认添加到 2 个模型
【发布时间】:2016-09-03 20:04:28
【问题描述】:

谁能给我一个示例,说明如何使用现有数据库将设计添加到 2 个不同的模型,我有 2 个模型,客户和供应商。如果我只是在两个模型上添加 :confirmable 并进行迁移 rails g migration add_confirmable_to_devise 将可确认选项迁移数据库后是否包含在两个模型中?

【问题讨论】:

    标签: ruby-on-rails ruby devise database-migration devise-confirmable


    【解决方案1】:

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

    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
    

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 2011-10-20
      • 1970-01-01
      相关资源
      最近更新 更多