[英]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.