前提・実現したいこと
Ruby on Rails(Rails 6.1.3.2、ruby 3.0.1)にてgem devise(4.8.0)を導入しています。
deviseのモデルはaccountsを使っています。
かかる状況下、ローカル上で新たにユーザーを作る際は、
http://localhost:3000/accounts/sign_up
にアクセスし、アカウントを作成していますが、サインアップ(アカウントの新規作成)についてはログインユーザーしかできないようにしたいと考えています。
つまり、http://localhost:3000/accounts/sign_upにアクセスする際は認証が必要としたと考えています。
そこで、
accounts/resistrations_controller.rbにて以下の認証設定を行いました。
該当のソースコード
class Accounts::RegistrationsController < Devise::RegistrationsController http_basic_authenticate_with name:"name", password:"secret" end
しかしながら、この結果は「何も起こらない」ということで失敗いたしました。
試したこと
application_controller.rbに上記コードを記載すると認証機能が機能しましたが、当然ですが全てのページで認証機能が有効になってしましました。
今回、
http://localhost:3000/accounts/sign_up
のURLにだけ、認証機能をつけたいのですが、方法がわからず苦戦しています。
アドバイスもらえれば幸いです。
あなたの回答
tips
プレビュー