更新设备控制器外部用户的属性

时间:2012-03-02 02:30:26

标签: ruby-on-rails devise

我正在使用设计来验证用户身份。我已经为随时更新的用户定义了分数。一个单独的控制器负责更新分数。我使用@user.update_attributes(:score => new_score)但无法保存更改。我怀疑是因为用户是一个设计对象。

有人可以帮我解决这个问题吗?

非常感谢

1 个答案:

答案 0 :(得分:2)

使用Devise,您的用户模型中可能有attr_accessible行。这是属性的白名单,可以通过哈希的批量分配(使用update_attributes等方法)进行更新。你可以做以下两件事之一:

  1. 将评分添加到attr_accessible。这意味着默认情况下使用参数[:user] [:score] = x发布到用户编辑屏幕将更新用户的分数。

  2. 通过@user.score = x直接在您的控制器中分配得分。直接分配不受attr_accessible

  3. 的影响

    以下是文档:http://api.rubyonrails.org/classes/ActiveModel/MassAssignmentSecurity/ClassMethods.html#method-i-attr_accessible