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 和相反的下来.. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |