Rails 作为自属性访问的一对一子属性

Rails One-to-one Child Attribute Accessed as Self Attribute

自从我进行任何 Rails 开发以来已经有几年了。曾经有一种方法可以以一对一的关系访问子属性作为该模型的属性。

例如,如果您有两个模型:PersonAddress,并且它们有 1:1 关系,您可以撤回 @person.zip_code,而不是@person.address.zip_code.

过去,当您可以在模型中明确定义可访问属性时,这很容易做到。看来这在 Rails 4.

中已经消失了

有什么想法吗?

它在 Rails 4.
中仍然可用 你想要的是delegate方法。

class Address
  belongs_to :person
end

class Person
  has_one :address
  delegate :zip_code, to: :address
end

现在您可以 @person.zip_code.

请阅读 docs 以了解有关 prefixallow_nil 等选项的更多信息。