現状と問題
railsでTwitterクローンアプリを作成しています。
ゲストログインを搭載しようと考え、こちらの記事を参考に実装しました。
問題なく動くのですが、ログイン後にユーザー編集ができたり、投稿ができたりという状況です。
ユーザー情報を変更し保存した後にログアウトし、再度ゲストログインすると変更された後の情報を引き継いでしまいます。
googleなどで機能制限について調べましたが、参考になる記事が見当たりませんでした。
model等でバリデーションなどをつけるべきなのかなど憶測で止まっています。
該当コード
routing
1devise_scope :user do 2 post 'users/guest_sign_in', to: 'users/sessions#new_guest' 3end
deviseSessionController
1def new_guest 2 user = User.guest 3 sign_in user # ユーザーをログインさせる 4 redirect_to root_path, notice: 'ゲストユーザーとしてログインしました。' 5end
userModel
1def self.guest 2 3 find_or_create_by!(email: 'aaa@aaa.com') do |user| 4 user.password = SecureRandom.urlsafe_base64 5 user.password_confirmation = user.password 6 user.nickname = 'サンプル' 7 user.birthday = '2000-01-01' 8 end 9 10end
registrationsNewHtmlErb
1<%= link_to 'ゲストログイン(閲覧用)', users_guest_sign_in_path, method: :post, class: "login" %>
最後に
ゲストログインはあくまで面接時に実装してあることでスムーズにアプリを見てもらうという意味を込めて実装しているため、編集機能や投稿機能などが実装できる方が良いのでは?とも考えています。
実装の有無に関わらず、機能制限の付け方を知っていて実装していないか知らないで実装していないかでは話が変わってくるため質問させていただきました。
ご回答何卒よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/05 01:36