我有一个20字段的数据库,并且想要设置所有变量能够被访问。为所有实例变量设置Attr_accessor
有没有一种方法来设置attr_accessor到所有的变量,而不列出每一个即
attr_accesor:一,:B,...等
我有一个20字段的数据库,并且想要设置所有变量能够被访问。为所有实例变量设置Attr_accessor
有没有一种方法来设置attr_accessor到所有的变量,而不列出每一个即
attr_accesor:一,:B,...等
attr_accessor
用于在普通的ruby对象上添加get/set方法。使用ActiveRecord模型,这些模型会根据架构中的列自动创建。
通常所有的ActiveRecord的属性是“无障碍”,这意味着从params哈希表,你可以大量指派值到所有这些:Model.update_attributes(params[:model])
你可能会想的attr_accessible
这使得只有特定的列访问这种方式,和使其余的“受到保护”,所以他们只能通过他们的setter方法直接分配。
与之相反的是attr_protected
,除了您指定的列以外,其余所有列均可访问。
我不知道如果我理解你的问题(?),但如果您的模型直接与数据库相关,则这些属性已可访问。
那么attr_accessor是否真的只用于与数据库没有直接关系的实例变量? – Tian 2010-06-22 05:06:04