使用默认的 --api 标签在 Rails 5 中创建了一个新的 API,并使用命令安装了 devise_token_auth gemrails 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 是建立在 devise 之上的。
因此,注释掉路由会向包含以下内容的 user.rb 文件抛出错误
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable,:omniauthable
include DeviseTokenAuth::Concerns::User
注释掉这些行后,它会向应用程序控制器抛出错误,其中包含:include DeviseTokenAuth::Concerns::SetUserByToken
注释掉这一行后,我收到 devise:orm 错误。
还尝试将设备添加到 gemfile 并为用户安装设备,这也失败了,再次抛出此错误undefined method 'devise' for User (call 'User.connection' to establish a connection)
预计要经历的迁移,
出现设计错误
应该采取什么措施来解决这个问题?
PS-这是我使用 Devise_token_auth gem 制作的第三个 API,之前没有遇到这个问题
这是一个设计问题,ActiveRecord ORM 被硬编码在 gem 内部,现在已经更改。这可以通过创建和添加设备初始值设定项来解决,如以下文档中所述。
https://devise-token-auth.gitbook.io/devise-token-auth/config/initialization 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 https://github.com/lynndylanhurley/devise_token_auth/issues/1276
您可以在哪里跟进此问题/添加您解决此问题的想法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)