前提・実現したいこと
Railsでアプリ作成中です。
omniauthのFacebookログイン認証とfriendly_idがうまくいかない状況になっています。
devise+omniauthでFacebookログインを実装しました。
その後、機能追加をしてfriendly_id (urlをオリジナルにできる)を実装した後うまくいかなくなりました。
user.rbのfriendly_idについての記述をコメントアウトするとログインできるのですが。。。
発生している問題・エラーメッセージ
user.rb
ruby
1 #friendly_url 2 include FriendlyId 3 friendly_id :friendly_url 4 5 validates :friendly_url, length: { in: 3..20 }, 6 uniqueness: true, #一意性 7 format: { with: /\A[\w@-]*[A-Za-z][\w@-]*\z/ } 8 9 #これをコメントアウトするとFacebookログインができる
試したこと
おそらく、validatesの設定か何かでFacebookログインした時に最初はfriendly_idを設定していないため、ユーザー登録ができないようなことが起こっているのではと考えています。
facebookログインしたときに、friendly_idは空でも大丈夫だよーということを記述すればいいような気がするのですが、どうすればいいのかわからない初心者です。。。
追記
新規登録の場合のみこの現象が発生しているようです。
いったんDBにFacebookログインのユーザーデータが格納された状態だと、friendly_idの記述があっても再度ログインできています。
あなたの回答
tips
プレビュー