2010-06-22 99 views
0

我有一个20字段的数据库,并且想要设置所有变量能够被访问。为所有实例变量设置Attr_accessor

有没有一种方法来设置attr_accessor到所有的变量,而不列出每一个即

attr_accesor:一,:B,...等

回答

0

attr_accessor用于在普通的ruby对象上添加get/set方法。使用ActiveRecord模型,这些模型会根据架构中的列自动创建。

通常所有的ActiveRecord的属性是“无障碍”,这意味着从params哈希表,你可以大量指派值到所有这些:Model.update_attributes(params[:model])

你可能会想的attr_accessible这使得只有特定的列访问这种方式,和使其余的“受到保护”,所以他们只能通过他们的setter方法直接分配。

与之相反的是attr_protected,除了您指定的列以外,其余所有列均可访问。

0

我不知道如果我理解你的问题(?),但如果您的模型直接与数据库相关,则这些属性已可访问。

+0

那么attr_accessor是否真的只用于与数据库没有直接关系的实例变量? – Tian 2010-06-22 05:06:04