如何更改不是attr_accessible的属性的值?

时间:2012-12-25 20:02:45

标签: ruby-on-rails

我有一个用户模型。

用户有一个名为Balance的字段(表示他在帐户中有多少钱)。

我显然不想让它成为attr_accessible。

但我希望能够改变它的价值(比如当我向他收取某些费用时)。

如何为此属性编写getter / setter方法?

2 个答案:

答案 0 :(得分:0)

@object.attribute = new_value attr_accesible是对大规模任务的保护,不要将其与attr_accessor混淆,从而创建getter和setter

以下是关于差异Difference between attr_accessor and attr_accessible

的问题

答案 1 :(得分:0)

attr_accessible可以保护您免受update_attributes及类似使用的群发分配。

它根本不会影响读取该属性的值,也不会影响您直接调用访问者。例如,你可以写

user.balance -= item.price
user.save!

假设您之前已经确认这确实是正确的行动。