1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | # 認証求められる class User < ApplicationRecord extend Devise::Models include DeviseTokenAuth::Concerns::User # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable end # 認証なしでいける class User < ApplicationRecord # Include default devise modules. Others available are: # :confirmable, :lockable, :timeoutable and :omniauthable devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable extend Devise::Models include DeviseTokenAuth::Concerns::User end |
includeしてるDeviseTokenAuth::Concerns::User
の中身にdevise
が記述されているか?の項目があったので、includeより上にdeviseの項目を設定しないと反映されないっぽい。
生成時ではinclude
はdevise
よりも下にあるので、まあ納得っちゃ納得だけど、上に持ってこないと、違和感がすごい。
とりあえずこれで動きます
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | module DeviseTokenAuth::Concerns::User extend ActiveSupport::Concern included do # Hack to check if devise is already enabled if method_defined?(:devise_modules) devise_modules.delete(:omniauthable) else devise :database_authenticatable, :registerable, :recoverable, :validatable, :confirmable end end end |
参考記事
なし。ソース見てみたら書いてあった。