ポートフォリオの作成にあたり、ゲストログイン機能は必須です。
忙しい担当者の方が、わざわざ会員登録をするよりも
ささっと多くの機能を見る場合が多いためです。
ゲスト登録機能は、下記の記事の方法で搭載できました。
こちらの「その2: ゲストログイン機能の実装方法」で実装しました。
その際、下記の2点は少しつまづいたので
記載指定おきます。
##[1]routes.rbの設定
config/routes.rb
devise_scope :user do
post 'users/guest_sign_in', to: 'users/sessions#new_guest'
end
こちらは、最初勝手に「devise_for :users」を修正するのかと思いましたが
追記する形で大丈夫でした。
デバイスを利用している方ですと
config/routes.rb
devise_for :users
devise_scope :user do
post 'users/guest_sign_in', to: 'users/sessions#new_guest'
end
こんな感じですね。
##[2]modelの設定
あとは記事の通りにやればうまく行くのですが、
自分は1つだけエラーになりました。
上記の設定ですと、ゲストユーザーのアカウントは
メールアドレスとパスワードの作成だけされています。
そのため、アカウントの作成に「nickname」などが
必須項目であった場合、エラーが起こります。
その際は、モデルでその情報を追記してあげましょう。
models/user.rb
def self.guest
find_or_create_by!(nickname: 'ゲスト', email: 'guest@example.com') do |user|
user.password = SecureRandom.urlsafe_base64
end
end
これで問題なく作成できました!