###validateに引っかかった時にエラーメッセージを表示させたい。
deviseで利用規約に同意するカラムを追加し、登録時にチェックボックスが空の場合、そのまま送信せずにエラーメッセージを表示させたい。
###現状について
このようにvalidateをかけて、チェックボックスが空の場合rollbackされるようになっているのが、これだとユーザー側が登録できたと思ってしまうので、送信せずにチェックボックスがチェックされるまで送信せずにエラーメッセージを表示させたい
ruby
1#ApplicationController 2 before_action :configure_permitted_parameters, if: :devise_controller? 3 protect_from_forgery with: :exception 4 5 def configure_permitted_parameters 6 devise_parameter_sanitizer.permit(:sign_up, keys:[:user_type_id, :accepted]) 7 end
ruby
1#User.rb 2before_validation :before_validations 3 4 def before_validations 5 if accepted == false 6 #ここに何を書けばいいか分からない 7 #flashをここに書いたところエラーが起きた 8 flash[:alert] = "利用規約に同意のほどお願いします。" 9 end 10 end
ruby
1class AddAcceptedToUsers < ActiveRecord::Migration[5.2] 2 def change 3 add_column :users, :accepted, :boolean, default: false, null: false 4 end 5end
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/04/23 06:17
2019/04/23 06:23
2019/04/23 09:24
2019/04/23 10:32