#はじめに
オリジナルアプリを作成するにあたって、中身を見てもらいやすくするためにボタン一つでログインできるようにゲストログイン機能を追加した時の備忘録です。
新規登録やログイン機能はdeviseを使用しています。
#guest user 実装
models/users.rb
def self.guest
find_or_create_by!(username: 'ゲスト', email: 'guest@example.com') do |user|
user.password = SecureRandom.urlsafe_base64
end
end
まずはルーティングの設定を行います。
routes.rb
devise_scope :user do
post 'users/guest_sign_in', to: 'users/sessions#new_guest'
end
new_guest
,アクションをusers/sessions_controller.rb
に追加します。users
ディレクトリはcontrollers
に追加。
users/sessions_controller.rb
class Users::SessionsController < Devise::SessionsController
def new_guest
user = User.guest
sign_in user
redirect_to root_path, notice: 'ゲストユーザーとしてログインしました。'
end
end
最後にボタンなどviewを追加すれば、実装完了。
application.html.erm
<p class="control">
<%= link_to 'ゲストログイン', users_guest_sign_in_path, class: "button is-warning is-fullwidth", method: :post %>
</p>
#最後に
ポートフォリオ(オリジナルアプリ)を見てもらうためにはとても重要な機能の追加。比較的簡単に実装が出来ました。
最後まで読んでいただきありがとうございます