2013-05-13 67 views
0

有沒有辦法寫這段代碼而不寫兩次字foo?Rails如果語句越來越長...當它應該很簡單

foo? foo : 0 

在我的情況,foo就像是vehicle.maintenance.starting_odometer一個東西,所以你可以想像,如果我要檢查存在像這些對象的代碼變得相當冗長和醜陋。

+1

這不是很長。但是'foo?'在'foo'之後需要一個空格。否則,它會被解釋爲一個方法的名稱('語法錯誤,意外':'') – 2013-05-13 18:55:28

回答

5

當然,你可以使用||

foo || 0 

選言符(稱爲or||)首先着眼於左側的元素。如果真的(不是nilfalse)它返回。否則,它會評估並返回右邊的元素。三元運算符的工作方式相同,只是它允許您指定不同的值來代替原始的「左手」元素。

+0

很好..像黃油。 – Bruno 2013-05-13 19:06:29