加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 设计gem:初始安装后添加模块

发布时间:2020-12-17 02:27:59 所属栏目:百科 来源:网络整理
导读:这可能不是特定于Devise但是我想知道如何在初始安装不包含所述模块时已经安装的gem中添加一个额外的模块?对于Devise,迁移助手t.confirmable在初始迁移的Self.up方法中很有用,整个User表在Self.down中被拆除.我的Rails-fu不够强大,无法揭示t.confirmable助手
这可能不是特定于Devise但是我想知道如何在初始安装不包含所述模块时已经安装的gem中添加一个额外的模块?对于Devise,迁移助手t.confirmable在初始迁移的Self.up方法中很有用,整个User表在Self.down中被拆除.我的Rails-fu不够强大,无法揭示t.confirmable助手实际上在做什么……

当User表已经存在并且您想要添加类似的内容时会发生什么:确认或:token_authenticatable?显然你不能再次只是create_table(:users)……所以我认为我想要add_column:users,…和remove_column:users,…但是我们如何去寻找需要发生的事情呢?

解决方法

看看Devise :: Schema

https://github.com/plataformatec/devise/blob/master/lib/devise/schema.rb

有这个

# 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

然后

https://github.com/plataformatec/devise/blob/master/lib/devise/orm/active_record.rb

def apply_devise_schema(name,type,options={})
    column name,type.to_s.downcase.to_sym,options
end

所以在你的迁移中就这么做

add_column :users,:confirmation_token,:string
 add_column :users,:confirmed_at,:datetime
 add_column :users,:confirmation_sent_at,:datetime

和相反的下来..

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读