我已经安装了Devise,现在想删除它,包括它生成的所有文件.我该怎么做?

推荐答案

我今天正在考虑解决同一个问题,由于这个问题没有得到回答,我就试试看

Models

如果默认安装,Deviate将生成User个型号.

devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable

attr_accessible中,如果不再需要,可以移除email:passwordpassword_confirmationremember_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_forstore_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.rbconfig/locales中的devise.en.yml.

Routes

删除任何devise_for行.这些将在删除gem后引发错误.

Gem File

耶.所有圆顶,从文件中删除第gem 'devise'行.

Ruby相关问答推荐

鲁比.METHOD_MISSING+SEND对于带有命名参数的混合参数失败

Rbenv说未安装已安装的版本

应用 ransack 日期字段过滤器后,相同的输出票证重复而不是一张

ASDF 上缺少 Ruby 版本

Ruby 匹配第一次出现的字符串以进行 gsub 替换

独立于 Rails 使用 HAML 文件中的布局

从单独的文件中包含一个 Ruby 类

如何将哈希保存到 CSV

使用正则表达式在第一个逗号之前提取文本

判断字符串是否包含Ruby数组中的任何子字符串

如何在 linux (ubuntu) 上更新 ruby​​?

RSpec: stubbing Kernel::sleep?

object_id 分配如何工作?

在 Pry 中有相当于 next 的吗?

Ruby 中的超级关键字

给定一组参数,如何将这些参数发送到 Ruby 中的特定函数?

如何删除已安装的 ri 和 rdoc?

我更改存储库 URL 后 Capistrano 部署失败

什么是 Ruby 1.9 标准 CSV 库?

JavaScript Array:获取项目的范围