2013-01-07 28 views
3

對不起,我的英語。Ruby on Rails助手:如果無,則顯示mdash

我在太多的地方是,顯示相關對象的值:

= post.category.name 

而這個類別可以爲null(在Ruby中無)。在Django中有default過濾器,其工作開支爲任何未知變量變爲None(無),我們可以設置默認值。

在Rails中,在這種情況下會出現異常NoMethodError,因爲我們試圖訪問不存在的類別名稱的含義。

我想寫一個幫助程序來捕獲異常並返回—,但post.category.name值是在將它傳遞給幫助程序(原則上爲邏輯)之前計算的。

一般情況下,我想在這裏提出的是下面的代碼:

= post.category.nil? ? raw ('-'): post.category.name 
更方便的形式

,這樣

= mdash(post.category.name) 

謝謝!

回答

1

這是什麼而不是三元運算符?

post.category.try(:name) || raw('-') 

Object#try