在我当前的 Ruby on Rails 项目中,设计插件已用于身份验证。为了更改密码,我将设计插件的密码/edit.html.erb 文件添加到我项目的用户目录中。除了没有显示错误消息外,一切正常。
这是我目前的update_password
方法
def update_password
@user = User.find(current_user.id)
if @user.update_with_password(params[:user])
sign_in @user, :bypass => true
redirect_to root_path
else
render "edit"
end
end
我在用户模型中提到了需要验证,如下所示
validates_presence_of :name, :primary_locale, :current_password, :password, :password_confirmation
这是我的编辑表单代码:
<div id="loginForm" class="editPwFormHeight">
<div id="loginHeader"><h3><%= image_tag("wif_small.png"); %></h3></div>
<div id="loginContent">
<%= form_for(@user, :url => { :action => "update_password", :locale => params[:locale] }, :method => "post") do |f| %>
<%= f.hidden_field :reset_password_token %>
<p><%= f.password_field :current_password, :class => "login_txt", :placeholder => I18n.t('wi.common.enterCurrentPw'), :autocomplete => "off" %></p>
<p><%= f.password_field :password, :class => "login_txt", :placeholder => I18n.t('wif.common.newPw'), :autocomplete => "off" %></p>
<p><%= f.password_field :password_confirmation, :class => "login_txt", :placeholder => I18n.t('wif.common.confirmPw'), :autocomplete => "off" %></p>
<p>
<input id="user_submit" name="commit" type="submit" value="<%= I18n.t('wif.common.updatePw') %>" class="login_btn" />
<input id="user_cancel" name="commit" type="button" value="<%= I18n.t('wif.common.cancel') %>" class="login_btn" />
</p>
<% end %>
</div>
</div>
任何人都可以帮助我解决这个问题。如果用户没有输入当前密码或设备当前支持的任何其他错误,我想显示错误消息