[英]Devise_token_auth conflicts?
使用默认的--api标签在rails 5中制作了一个新API,并使用命令rails generate devise_token_auth:install User auth
安装了devise_token_auth gem。 在执行rake:db:migrate
,我得到了undefined method 'devise' for User (call 'User.connection' to establish a connection)
此错误undefined method 'devise' for User (call 'User.connection' to establish a connection)
,这很奇怪,因为devise_token_auth建立在devise之上。
因此,注释掉路由会向包含以下内容的user.rb文件抛出错误
devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable,:omniauthable include DeviseTokenAuth::Concerns::User
在注释掉这些行之后,它将向包含以下内容的应用程序控制器抛出错误: include DeviseTokenAuth::Concerns::SetUserByToken
在注释掉这一行之后,我得到了include DeviseTokenAuth::Concerns::SetUserByToken
:orm错误。
还尝试将devise添加到gemfile并为用户安装devise,这也失败了,再次undefined method 'devise' for User (call 'User.connection' to establish a connection)
抛出此错误undefined method 'devise' for User (call 'User.connection' to establish a connection)
预期要进行的迁移,
出现设计错误
应该怎么做才能解决这个问题?
PS-这是我使用Devise_token_auth gem制作的第三个API,之前没有遇到过此问题
这是一个设计问题,ActiveRecord ORM已在gem内进行了硬编码,之前已进行了更改。 可以通过创建和添加以下文档中提到的devise初始化程序来解决。
https://devise-token-auth.gitbook.io/devise-token-auth/config/初始化
通过在user.rb模型文件中添加以下内容,还有另一种解决此问题的方法。
extend Devise::Models
devise_token_auth中还有一个未解决的问题
https://github.com/lynndylanhurley/devise_token_auth/issues/1276
您可以在哪里跟进有关此问题的问题/添加您的想法以解决此问题。
您是否执行了以下步骤-
在gemfile
包含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,devise_token_auth gem并尝试以下步骤吗? 让我知道是否出现任何错误。
我收到此错误,这对我来说是一个解决方法。
1)在Gemfile中添加'devise_token_auth'gem。
2)运行rails g devise:install
3)运行rails生成devise_token_auth:安装用户身份验证
4)运行rails db:migrate
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.