ユーザーがプロファイルを編集するときに現在のパスワードを入力するようにします。
これは私のユーザーモデルがどのように見えるかです:
attr_accessor :current_password
def current_password
errors[:current_password] << 'Incorrect password' unless self.current_password == self.password
end
validate :current_password, on: :update
そして私のコントローラパラメータ:
def user_params
params.require(:user).permit(:email, :name, :current_password, :password, :password_confirmation, :phone)
end
そしてユーザーフォームのパーシャル:
<div class="form-group">
<%= f.label :password, "Current password" %>
<%= f.password_field :current_password, class: "form-control", placeholder: "Current password" %>
</div>
しかし、スタックレベルが深すぎて、検証ループに入ります。
私は何を間違っていますか?