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

时间:2016-08-07 04:06:40

标签: ruby-on-rails ruby ruby-on-rails-4 attributes one-to-one

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

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

当您可以在模型中明确定义可访问属性时,这很容易做到。现在Rails 4中似乎已经消失了。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

它仍然可以在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等选项。