Ruby on rails 设计gem:在初始安装后添加模块

Ruby on rails 设计gem:在初始安装后添加模块,ruby-on-rails,migration,gem,devise,Ruby On Rails,Migration,Gem,Devise,这可能不是专门针对Desive的,但我想知道,当初始安装不包括所述模块时,如何向已经安装的gem添加额外的模块?在designe的情况下,迁移助手t.confirmatible在初始迁移的Self.up方法中很有用,整个用户表在Self.down中被拆下。我的Rails fu不够强大,无法揭示t.confirmable助手的实际操作 当用户表已经存在,并且您希望添加类似:confirmable或:token\u authenticatable的内容时,会发生什么情况?显然,您不能再创建表(:us

这可能不是专门针对Desive的,但我想知道,当初始安装不包括所述模块时,如何向已经安装的gem添加额外的模块?在designe的情况下,迁移助手
t.confirmatible
在初始迁移的
Self.up
方法中很有用,整个用户表在
Self.down
中被拆下。我的Rails fu不够强大,无法揭示
t.confirmable
助手的实际操作


用户
表已经存在,并且您希望添加类似
:confirmable
:token\u authenticatable
的内容时,会发生什么情况?显然,您不能再创建表(:users)。。。所以我认为我想
添加列:用户,
删除列:用户,
,但是我们如何着手找出需要发生什么呢

看一看designe::Schema

哪个有这个

# Creates confirmation_token, confirmed_at and confirmation_sent_at.
    def confirmable
      apply_devise_schema :confirmation_token,   String
      apply_devise_schema :confirmed_at,         DateTime
      apply_devise_schema :confirmation_sent_at, DateTime
    end
然后

因此,在迁移过程中,只需执行以下操作

 add_column :users, :confirmation_token, :string
 add_column :users, :confirmed_at, :datetime
 add_column :users, :confirmation_sent_at, :datetime 
而向下的方向正好相反

您的迁移:

  class DeviseAddConfirmable < ActiveRecord::Migration
     def change
       change_table(:users) do |t|
          t.confirmable
       end

       add_index :users, :confirmation_token,   :unique => true
     end
  end
类designeaddconformabletrue
结束
结束
  class DeviseAddConfirmable < ActiveRecord::Migration
     def change
       change_table(:users) do |t|
          t.confirmable
       end

       add_index :users, :confirmation_token,   :unique => true
     end
  end