現状
現在rails6.0で開発しており、deviseを導入してログイン機能を実装しています。
最終的にユーザー作成の段階でユーザーが管理者として登録するか(admin)、管理者の管轄に入るユーザーにしたいか選べる形で登録できるようにしたいです。
仕組みとしてはadmin希望の場合は新規作成の段階でadminIdを別途新規作成の段階で作成し、管轄に入るユーザーはadminIdを管理者に教えてもらって使用することで、adminのコンテンツにアクセスできるという仕組みです。
そこで、deviseにadminカラム、adminIdカラムを追加しました。
・adminカラム
→boolean型、デフォルトfalse
・adminIdカラム
→string型、デフォルト""
質問
カラムはmigrateしたのですが、adminIdは問題なく登録できたのですが、adminIdのfalseが変わらず、悩んでいます。
以下関係する記述
app/views/users/registrations/new.html.erb
<div class="box-admin"> <%= f.label :admin, "マネージャー設定" %><br /> <%= f.check_box :admin%> </div>
app/controllers/application.rb
class ApplicationController < ActionController::Base before_action :configure_permitted_parameters, if: :devise_controller? protect_from_forgery with: :exception protected def configure_permitted_parameters devise_parameter_sanitizer.permit(:sign_up, keys: [:admin, :adminId]) devise_parameter_sanitizer.permit(:account_update, keys: [:admin, :adminId]) end end
userテーブル内
id = 12 email = 5555555@gmail.com encrypted_password = $2a$12$bpuilY2sFma7dK2MPH7g0efAnJQvo7kpGlfXqv1k9pDOmb.EYb4kC reset_password_token = reset_password_sent_at = remember_created_at = created_at = 2023-04-22 03:38:59.441981 updated_at = 2023-04-22 03:38:59.441981 admin = 0 adminId = yyyyyyyy
参考にした記事
https://kobacchi.com/rails7-devise-user-admin-login/
予想としてはadminの値がデフォルトでfalseなので、db上では0のままで、チェックボックスにチェックを入れてtrueにした情報がdbに送れていないのかなと考えています。
その際、どこをいじればいいのか見つからず、質問させていただきました。
以上、どなたかご教授いただけないでしょうか?
回答1件
あなたの回答
tips
プレビュー