我确定已经有人问这个问题,但我找不到答案。避免在Rails视图中使用nil
我有一个项目模型,它与我的客户模型有belongs_to
关系。客户有一个名字,但是一个项目不一定有客户。
在我看来,我有这样的代码:
<%=h project.client && project.client.name %>
,因为如果项目没有一个客户端,然后试图访问project.client.name
导致NoMethodError(nil
没有一个调用的方法name
)。
问题是,在视图中是否可以接受这种类型的零检查,还是应该寻找其他方法?
我忘了那个...... :)但是,当你穿越5-6个模型时,它仍然会变得很沉重。 :( – DGM 2010-08-21 13:11:20
http://en.wikipedia.org/wiki/Law_of_Demeter – Reactormonk 2010-08-21 14:00:05
@Tass您对德米特法律是正确的,但我认为这不是正确的实施方式,请在下面看到我的帖子。 – dombesz 2014-01-08 17:06:56