我今天正在考虑解决同一个问题,由于这个问题没有得到回答,我就试试看
Models
如果默认安装,Deviate将生成User
个型号.
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
在attr_accessible
中,如果不再需要,可以移除email
、:password
、password_confirmation
和remember_me
.
Views
默认的Desive安装不会在app
文件夹中生成视图.如果为Desive生成了覆盖视图,可以通过运行rails destroy devise:views
(Rails 3)来删除它们.
通常,所有视图都存储在app/views/devise
中.
Controllers
默认情况下,Desive也不会生成任何控制器.如果你做了任何重写,它们很可能被称为registrations_controller
.在项目中搜索继承Devise::RegistrationsController
类的控制器.
此外,如果你遵循Deviate的wiki和monkey ed来添加重定向方法等,请注意用于重定向用户的方法,如after_sign_in_path_for
、store_location
等.
Migrations
如果你通过它的生成器安装了Desive,请注意迁移create_users
.如果你不再需要它,在迁移中使用drop_table :users
来摆脱它.
我想大多数人都希望保留他们的用户模型.如果您正在使用Desive<;2.0版本,迁移由助手完成.一旦您从Gemfile
中删除Desive,Rails将无法理解下面的帮助程序,并抛出错误,例如,当您试图在另一个盒子上重新运行这些迁移时.这些助手是:
t.database_authenticatable
t.recoverable
t.rememberable
t.trackable
t.encryptable
t.confirmable
t.lockable
t.token_authenticatable # => becomes t.string :authentication_token
对于确切的列,以下是Deviate生成的列的参考.
https://github.com/plataformatec/devise/wiki/How-To:-Upgrade-to-Devise-2.0-migration-schema-style
上面的指南列出了Desive使用帮助程序生成的字段.您应该能够查看列表和您的模型(例如,在控制台中调用User
),生成删除这些列的migrations.
BUT...
不幸的是,为了保持一致性,我们必须使用上面的指南将迁移转换为不使用helpers,然后生成迁移来删除它们.这是为了迁移历史的一致性,否则任何运行迁移的人都可能try 调用不存在的帮助程序.此外,删除字段的迁移也会要求字段出现.
或者,现在可能是挤压迁移并依赖schema.rb
/structure.sql
模式的最新状态的好时机.即使在删除迁移之后,也可以随时使用rake db:schema:load
重新创建development DB.
Initializers and Locale
拆下config/initializers
中的devise.rb
和config/locales
中的devise.en.yml
.
Routes
删除任何devise_for
行.这些将在删除gem后引发错误.
Gem File
耶.所有圆顶,从文件中删除第gem 'devise'
行.