いつもお世話になっております。
OAuth認証の実装中に下記のようなエラーが生じてしまいました。
NameError at /api/v1/auth/twitter/callback uninitialized constant User::Snss
下記の記事等を参考にしましたが、モデルクラス名の単複に間違いはないと思います。
https://teratail.com/questions/13505
どなたか原因がわかる方はいらっしゃらないでしょうか?
よろしくお願い致します。
app/models/user.rb
ruby
1class User < ApplicationRecord 2 has_many :snss 3 validates_associated :snss 4 5 def self.find_for_oauth(auth) 6 # userを暫定情報で登録してからsnsを登録する 7 user = User.where(uid: auth["uid"], provider: auth["provider"]).first 8 9 unless user 10 ActiveRecord::Base.transaction do 11 self.register_user(auth) 12 end 13 end 14 15 user 16 end 17 18 # userテーブルに登録 19 def self.register_user(auth) 20 # require 'byebug'; byebug 21 create( 22 name: auth["info"]["name"], 23 email: User.dummy_email(auth), 24 password: Devise.friendly_token[0, 20], 25 ) 26 end 27end
app/models/sns.rb
class Sns < ApplicationRecord end
config/routes/api/routes.rb
Rails.application.routes.draw do mount_devise_token_auth_for 'User', at: 'api/v1/auth', controllers: { omniauth_callbacks: "users/omniauth_callbacks" } end
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/07/03 05:18