如何确保只更新特定属性并在Rails中强制另一个属性为nil?

时间:2013-11-25 10:24:19

标签: ruby-on-rails railscasts whitelist update-attributes

在RailsCasts Episode #274 'Remember Me & Reset Password'中,用户输入提交到PasswordResetsController的新密码。

演员表示将更新属性的行显示为:

elsif @user.update_attributes(params[:user])

对于Rails 4,我不得不将其更改为:

elsif @user.update_attributes(params.permit![:user])

我只希望用用户输入的内容更新用户的password属性,并将password_reset_token设置为nil。我该怎么做并确保只有那些字段可以更新?

1 个答案:

答案 0 :(得分:0)

我想你想要这样的东西:

elsif @user.update_attributes(
  params.require(:user).permit(:password, :password_confirmation).merge(password_reset_token: nil)
)