我知道使用表单添加/编辑/删除(嵌套)记录的一种方法是在相应的模型中使用 :accepts_nested_attributes_for: 。但是,当这种嵌套扩展到大约 4 级时(由于数据库的规范化),并且我想在网站上显示所有这些级别以进行编辑,这种方法似乎相当麻烦(而且丑陋)。
我想知道是否有一种方法可以使用 getter 和 setter 方法定义“超级”模型,允许我在一个地方编辑必要的数据。作为一个简化的例子,考虑:
class Person < ActiveRecord::Base
attr_accessible :name, :age
has_one :address
end
class Address < ActiveRecord::Base
attr_accessible :street, :zip, :country
belongs_to :person
end
我想以一种形式显示/编辑/更新/等名称、年龄、街道、邮编、国家。很清楚如何使用 Accepts_nested_attributes_for 执行此操作。但是我想要一个类,比如 PersonalInformation,它通过传入 Person 的 id 来结合两个类中的字段名称、年龄、街道、邮编、国家/地区。然后我想用这个类作为网站的接口。