我確定已經有人問這個問題,但我找不到答案。避免在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