8
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

ゲストログイン機能について

Posted at

ポートフォリオの作成にあたり、ゲストログイン機能は必須です。
忙しい担当者の方が、わざわざ会員登録をするよりも
ささっと多くの機能を見る場合が多いためです。

ゲスト登録機能は、下記の記事の方法で搭載できました。

こちらの「その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

これで問題なく作成できました!

8
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
13

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?