Rails/ActiveRecord - 我怎样才能使这更简洁?

rec*_*nym 3 ruby ruby-on-rails

在我看来,我有一行如下:

<%= @house.person.phone_number unless @house.person.nil?  %>
Run Code Online (Sandbox Code Playgroud)

似乎我必须做很多这样的事情,因为有些字段可以为空.

有没有更好的方法来写这个?

我可以在模型层处理它,但根据我的理解,这并不能真正模拟层功能.

Chi*_*tan 5

您可以使用活动记录支持的委托方法.

delegate :phone_number, :to => :person, :allow_nil => true

@house.phone_number直接打电话,避开person中间人.如果手机是零,这也将返回零.