Tôi có một bộ điều khiển tùy chỉnh xử lý việc chỉnh sửa mật khẩu người dùng dựa trên mã số here.Devise Not Validating Password/Xác nhận mật khẩu
tài khoản Mẫu
attr_accessible :password, :password_confirmation, :username, :login
...
devise :database_authenticatable,
:lockable,
:registerable,
:recoverable,
:rememberable,
:trackable
PasswordsController
expose(:user) { current_user }
def update
if user.update_with_password(params[:user])
sign_in(user, :bypass => true)
flash[:notice] = "success"
else
render :edit
end
end
chỉnh sửa hình thức mật khẩu của tôi nằm here.
Vấn đề là không có vấn đề gì tôi nhập (hoặc không nhập cho vấn đề đó) vào biểu mẫu chỉnh sửa mật khẩu, Phương pháp flash "thành công" được hiển thị.
Mọi thứ có hoạt động không? nếu trường xác nhận không khớp hoặc current_password là sai, nó không thay đổi mật khẩu? – Dex
Nó vẫn thay đổi nó cho bất cứ điều gì là trong: mật khẩu bất kể những gì (nếu bất cứ điều gì) là trong: password_confirmation. –
điều gì sẽ xảy ra nếu bạn thay đổi câu lệnh if thành 'if params [: user] [: password] == params [: user] [: password_confirmation]' và đặt 'user.update_with_password (params [: user])' vào phần thân ? –