我有一个20字段数据库,并希望将所有变量设置为可以访问。
有没有办法将attr_accessor设置为所有变量,而不列出每个变量,即
attr_accesor:a,:b,... etc
答案 0 :(得分:0)
我不确定我是否理解您的问题(?),但如果您的模型直接与数据库相关,那么这些属性已经可以访问。
答案 1 :(得分:0)
attr_accessor
用于在普通的ruby对象上添加get / set方法。使用ActiveRecord模型,这些模型将根据模式中的列自动创建。
通常所有ActiveRecord属性都是“可访问的”,这意味着您可以从params哈希中为所有这些属性分配值:Model.update_attributes(params[:model])
您可能会想到attr_accessible
只使某些列可以通过这种方式访问,并使其余的“受保护”,因此只能通过其setter方法直接分配它们。
相反的是attr_protected
,除了您指定的列之外,所有列都可以访问。