整个项目都是这样构建的:我有一个提供数据和保存数据的api。比另一个将数据api的数据转换为“漂亮和干净”数据的应用程序。而不是前端,它采用了漂亮而干净的数据。
在中间部分,我得到了模型字段。它有多个属性,如:id,area等。这些属性也在schema.rb中。现在我也有类似于:field_nr的属性,它们不在schema.rb中。但取自api,转换后再打印为json。现在我必须从字段模型中读取属性field_nr,该属性不在schema.rb / database中。我该如何阅读这些属性?
感谢您的帮助&只是询问是否有不清楚的事情
答案 0 :(得分:0)
作为选项,您可以将attr_accessor :field_nr
添加到模型类中。这将为您提供所需的制定者和吸气剂。
答案 1 :(得分:0)
添加"虚拟"属性到ActiveRecord模型,就像向任何其他Ruby类添加属性一样。
在Ruby实例中,变量总是私有的*。您可以通过创建访问者来提供访问权限:
class Thing
attr_reader :a_readable_attr
attr_setter :a_write_only_attr
attr_accessor :a_rw_attribute
end
这与以下内容相同:
class Thing
def a_readable_attr
@a_readable_attr
end
def a_write_only_attr=(v)
@a_write_only_attr = v
end
def a_rw_attribute
@a_rw_attribute
end
def a_rw_attribute=
@a_rw_attribute
end
end
Rails中的一个很酷的事情是,只要setter存在,它就允许你从哈希中分配属性:
class Thing < ActiveRecord::Base
attr_accessor :foo
end
Thing.new(foo: 'bar')