在设计用户上更改密码

时间:2015-11-12 17:50:16

标签: ruby-on-rails devise

我正在尝试构建自定义重置密码功能。 我的观点中有一个表格

init=

然后在我的控制器上,我试图更改密码和password_confirmation字段。

  <div class="form-group">
     <%= f.label :password %>
     <%= f.password_field :password, autofocus: true, title:"Enter your email", name:"password", id:"password", class:"form-control" %>
      <span class="help-block small">Password</span>
    </div>
    <div class="form-group">
       <%= f.label :password_confirmation %>
       <%= f.password_field :password_confirmation, autofocus: true, title:"Enter your email", name:"password_confirmation", id:"password_confirmation", class:"form-control" %>
        <span class="help-block small">Confirm Password</span>
      </div>
   <div class="actions"><%= f.submit "Update Password", class:"btn btn-success btn-block" %></div>

似乎密码正在改变,但是当我尝试登录时,我不能!

1 个答案:

答案 0 :(得分:0)

您似乎直接在params中引用已发布的参数,而不是通过允许其提交的强参数引用。

例如,控制器中的强参数定义应该类似于

def user_params
  params.require(:user).permit(:password, :password_confirmation)
end

然后使用user_params[:password]等参考参数,而不是直接使用params。

这具有双重效果,即只接受列入白名单的参数,并且更容易访问用户[密码]和用户[password_confirmation]参​​数。