gpt4 book ai didi

ruby - 如何卸载 spree auth devise gem

转载 作者:数据小太阳 更新时间:2023-10-29 08:57:35 25 4
gpt4 key购买 nike

我有一个现有的 Rails 5.1 应用程序,其中已经包含一个自定义用户 Controller 。

当我按照说明安装 Spree 时,我安装了 spree_auth_devise gem并按照自述文件页面上的建议运行迁移和其他安装命令。当我开始使用 gem 时,我发现我的 User 类存在问题,这当然是因为我在不使用 devise 时安装了 devise gem

我曾尝试按照有关如何在不使用 devise 时设置自定义用户模型的说明进行操作,但在按照这些说明进行操作并删除 spree_auth_devise 后,我无法启动该网站。

当我在安装了 gem 的情况下运行站点时,我的“登录”等自定义路由不起作用。它们指向安装 spree 的路径,而不是我的 routes.rb 中定义的路径。

我不确定如何删除 gem 并让我的用户模型与 spree 一起工作。任何帮助表示赞赏。我不确定除此之外还需要提供哪些详细信息或代码,因为有很多文件受此影响。我会发布您认为可能有帮助的任何内容。

更新:根据下面的评论,这是我的 routes.rb 中与 spree 相关的部分。如果您还需要什么,请告诉我:

mount Spree::Core::Engine, at: '/store'

get 'login' => 'sessions#new'
get 'signup' => 'users#new'
delete 'logout' => 'sessions#destroy'
post 'login' => 'sessions#create'

UPDATE 2 当我尝试启动服务器或运行 rake db:migrate...时出现此错误...

Exiting
/Users/user/sites/site/app/controllers/application_controller.rb:8:in `<class:ApplicationController>': uninitialized constant Spree::AuthenticationHelpers (NameError)
from /Users/user/sites/site/app/controllers/application_controller.rb:1:in `<top (required)>'

最佳答案

根据您的信息,试试这个:

删除 config/initializers/devise.rb 如果你还没有这样做

从您的routes.rb

devise 中删除任何 相关代码

可能看起来类似于:

devise_for :users, controllers: {
confirmations: 'users/confirmations',
passwords: 'users/passwords',
registrations: 'users/registrations',
sessions: 'users/sessions',
unlocks: 'users/unlocks'
}

检查是否有相关代码 devise/spree_auth_devise

在您的 User 模型中可能看起来像这样:

devise :database_authenticatable, :registerable

或者在您的 ApplicationController 或任何其他 Controller 中(git grep it):

before_action :authenticate_user!

回滚数据库更改(适当设置 STEP 和 RAILS_ENV):

rake db:rollback STEP=1 RAILS_ENV=development

如果没有任何帮助,请尝试 git revertgit reset

关于你的错误 uninitialized constant Spree::AuthenticationHelpers

这个模块定义在 spree_auth_gem here并且还包含在 the engine 中的 ApplicationController .

如果您通过 this guide 设置了 spree 删除 包括 Spree::AuthenticationHelpers 从您的 ApplicationController

下面的内容可能也是不必要的。我会一个一个地删除它们,看看你的应用程序是否仍然有效:

include Spree::Core::ControllerHelpers::Auth
include Spree::Core::ControllerHelpers::Common
include Spree::Core::ControllerHelpers::Order
include Spree::Core::ControllerHelpers::Store
helper 'spree/base'

关于ruby - 如何卸载 spree auth devise gem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46899557/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com