Devise_token_auth冲突?(Devise_token_auth conflicts?)

2019-09-28 20:02发布

利用制造默认--api标签在导轨5一个新的API,并使用命令安装devise_token_auth宝石rails generate devise_token_auth:install User auth 。 做rake:db:migrate ,我得到这个错误undefined method 'devise' for User (call 'User.connection' to establish a connection) ,因为devise_token_auth是建立在色器件顶部这是奇怪的..

所以,注释掉路线抛出错误user.rb包含文件

devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable,:omniauthable include DeviseTokenAuth::Concerns::User

注释这些线条勾勒出它抛出错误包含应用程序控制器之后: include DeviseTokenAuth::Concerns::SetUserByToken注释掉这一行后,我得到的色器件:ORM错误。

也尝试添加到设计Gemfile中和安装设计对于用户来说,这太失败,再次引发此错误undefined method 'devise' for User (call 'User.connection' to establish a connection)

预计迁移穿过去,

获取设计错误

应该做些什么来解决这个问题?

PS-这是我使用Devise_token_auth宝石制作第三API,没有面对这个问题早

Answer 1:

这是有一项问题,ActiveRecord的ORM创业板之前已现改为对内部进行硬编码。 这可以通过创建和下面的文件中所提及添加色器件初始化得到解决。

https://devise-token-auth.gitbook.io/devise-token-auth/config/initialization

也有修复此,通过在user.rb模型文件加入下面的另一种方式。

extend Devise::Models

也有在devise_token_auth一个开放的问题

https://github.com/lynndylanhurley/devise_token_auth/issues/1276

在这里您可以跟进有关此问题/添加在您的想法解决这一点。



Answer 2:

你做以下步骤 -

包括在宝石gemfile -

gem 'devise_token_auth'

运行的发电机:

rails generate devise_token_auth:install User auth

检查是否低于线在加入User模型:

include DeviseTokenAuth::Concerns::User

检查是否低于线在加入Application controller

include DeviseTokenAuth::Concerns::SetUserByToken

检查以下线在加入routes.rb

mount_devise_token_auth_for 'User', at: 'auth'

extend Devise::Models在用户模式

运行rake db:migrate

你可以尝试删除色器件,devise_token_auth宝石和尝试这些步骤? 让我知道如果任何错误弹出。



Answer 3:

我得到这个错误,这是我的一个修正。

1)在Gemfile中添加 'devise_token_auth' 宝石。

2)运行轨道克色器件:安装

3)运行轨道产生devise_token_auth:安装用户验证

4)运行Rails分贝:迁移



文章来源: Devise_token_auth conflicts?