利用制造默认--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,没有面对这个问题早
这是有一项问题,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
在这里您可以跟进有关此问题/添加在您的想法解决这一点。
你做以下步骤 -
包括在宝石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宝石和尝试这些步骤? 让我知道如果任何错误弹出。
我得到这个错误,这是我的一个修正。
1)在Gemfile中添加 'devise_token_auth' 宝石。
2)运行轨道克色器件:安装
3)运行轨道产生devise_token_auth:安装用户验证
4)运行Rails分贝:迁移