devise で生成されたページをベースにユーザ情報更新ページを作りたくて
devise gem で生成される registration/edit に
form_for (デフォルトで生成されるフォーム) パスワード更新入力フィールド 更新ボタン end <%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put, id: 'edit_time_zone' }) do |f| %> <%= f.time_zone_select :time_zone, nil, default: Time.zone.name %> <%= f.submit "Update" %> <% end %> : :
のような感じで更新項目を羅列していこうと思ったのですが
user.rb
validates :time_zone, inclusion: { in: ActiveSupport::TimeZone.zones_map.keys }
を追加するとパスワード更新時も入力を要求されるようになり、
タイムゾーン更新時にもパスワードが要求されます
バリデーションのことがよくわかっていないのですが
項目ごとにサブミットしたときその項目のみのバリデーションを行うにはどうすればいいのでしょうか
user_controler にはほとんど何もかかれていなくて
Devise::RegistrationsController を継承してるのでこちらがいろいろやってくれてるんだと思うのですが
デフォルトで生成されるパスワード以外の項目を追加したいなら自分で user_controller 側に個別項目をアップデートする
コントローラーをかく必要があるのでしょうか
あなたの回答
tips
プレビュー