我有以下表格和控制器。
<%= form_tag do %>
<div>
<%= label_tag :Old %>
<%= password_field_tag :old_password %>
</div>
<div>
<%= label_tag :New %>
<%= password_field_tag :new_password %>
</div>
<div>
<%= label_tag :Confirm %>
<%= password_field_tag :confirm_password %>
</div>
<div>
<%= submit_tag "Update" %>
</div>
<% end %>
和控制器:
def change
@user = current_user
@op = params[:old_password]
@np = params[:new_password]
@cp = params[:confirm_password]
if @np == @cp
@user.update_with_password(:password => @np, :current_password=>@op)
if @user.save
flash[:notice] = "Password Successfully Changed"
redirect_to home_path
end
else
@user.errors.add("Incorrect confirmation")
end
end
这都与 config/routes.rb 中的“密码/更改”相关联
问题是,当我转到 /password/change 时,我立即重定向到家并收到“密码已成功更改”的闪烁通知。我从中得到的是,它不需要我单击提交按钮来传递参数。如何使它在继续通过控制器之前等待表单的提交?