1

我有一个用户模型。

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

我显然不想让它attr_accessible。

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

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

4

2 回答 2

0

@object.attribute = new_value attr_accesible是一种防止大规模分配的保护,不要弄乱它,attr_accessor它会创建 getter 和 setter

这是关于attr_accessor 和 attr_accessible 之间差异的问题

于 2012-12-25T20:10:22.010 回答
0

attr_accessible保护您免受大规模分配,如使用update_attributes和类似。

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

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

假设您之前已验证这确实是正确的操作。

于 2012-12-25T21:12:16.110 回答