Devise_token_auth 冲突?
Devise_token_auth conflicts?
使用默认 --api 标签在 rails 5 中创建了一个新的 API 并使用命令安装了 devise_token_auth gem
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
注释掉这一行后,我得到 devise:orm 错误。
还尝试将设计添加到 gem 文件并为用户安装设计,同样失败,再次抛出此错误 undefined method 'devise' for User (call 'User.connection' to establish a connection)
预计要进行的迁移,
获取设计错误
应该如何解决这个问题?
PS- 这是第三个 API 我正在使用 Devise_token_auth gem,之前没有遇到这个问题
您是否执行了以下步骤 -
在 gemfile
-
中包含 gem
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 gem 并尝试这些步骤吗?
如果弹出任何错误,请告诉我。
这是一个设计问题,ActiveRecord ORM 是在 gem 内部硬编码的,现在已更改。这可以通过创建和添加以下文档中提到的设计初始值设定项来解决。
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
你可以在哪里跟进这个问题/添加你的想法来解决这个问题。
我遇到了这个错误,这对我来说是一个修复。
1) 在 Gemfile 中添加 'devise_token_auth' gem.
2) 运行 rails g devise:install
3) 运行 rails 生成 devise_token_auth:install 用户授权
4) 运行 rails db:migrate
使用默认 --api 标签在 rails 5 中创建了一个新的 API 并使用命令安装了 devise_token_auth gem
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
注释掉这一行后,我得到 devise:orm 错误。
还尝试将设计添加到 gem 文件并为用户安装设计,同样失败,再次抛出此错误 undefined method 'devise' for User (call 'User.connection' to establish a connection)
预计要进行的迁移,
获取设计错误
应该如何解决这个问题?
PS- 这是第三个 API 我正在使用 Devise_token_auth gem,之前没有遇到这个问题
您是否执行了以下步骤 -
在 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 gem 并尝试这些步骤吗? 如果弹出任何错误,请告诉我。
这是一个设计问题,ActiveRecord ORM 是在 gem 内部硬编码的,现在已更改。这可以通过创建和添加以下文档中提到的设计初始值设定项来解决。
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
你可以在哪里跟进这个问题/添加你的想法来解决这个问题。
我遇到了这个错误,这对我来说是一个修复。
1) 在 Gemfile 中添加 'devise_token_auth' gem.
2) 运行 rails g devise:install
3) 运行 rails 生成 devise_token_auth:install 用户授权
4) 运行 rails db:migrate