Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 更新属性正在修改Rails中的密码_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 3.1_Rubygems - Fatal编程技术网

Ruby on rails 更新属性正在修改Rails中的密码

Ruby on rails 更新属性正在修改Rails中的密码,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,rubygems,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,Rubygems,我有一个用户模型。我正在尝试从管理模型更新“确认”属性。但是在这样做的时候,所有的属性都被重新传递;由于使用了散列,因此再次传递的密码正在更改。 我已经实现了Michael Hart教程中的模型,并使用了相同的哈希技术。在管理模型中,您可以设置白名单可以访问的属性 attr_accessible :username 现在发布时,只能调整用户的:username属性。而不是使用update\u attribute()使用update\u列(:name,value)方法,因为update\u at

我有一个用户模型。我正在尝试从管理模型更新“确认”属性。但是在这样做的时候,所有的属性都被重新传递;由于使用了散列,因此再次传递的密码正在更改。
我已经实现了Michael Hart教程中的模型,并使用了相同的哈希技术。

在管理模型中,您可以设置白名单可以访问的属性

attr_accessible :username

现在发布时,只能调整用户的:username属性。

而不是使用
update\u attribute()
使用
update\u列(:name,value)
方法,因为
update\u attribute
调用正在更新密码的回调方法。

来自管理员控制器的代码:def confirm@users=User.find_all\u by_confirm(false)end def confirm_User@User=User.find(params[:id])@User.update\u attribute(:confirm,true)重定向到:back endEdit您的问题,并添加代码,格式正确,我不知道怎么做。有没有办法只更新一个属性?不碰任何东西other@AmeyaJoshi我已经用你的代码更新了问题事实上我没有发布任何东西。我只是简单地使用update_属性方法。密码已受批量分配保护。由于用户模型中的身份验证和加密方法,它正在更改。此外,没有管理模型。据我所知,在使用编辑方法时,它将使用http GET请求通过id获取相应的对象,_表单将再次呈现,属性将加载到表单中,要保存/更新此记录,您将单击一个提交按钮,该按钮使用http POST请求更新属性,使用attr_accesible,您可以将受此POST请求影响的属性列为白名单。在我看来,这也是一种保护数据库免受大规模分配的方法,与您当前的问题无关。