2013-05-29 38 views
2

林重構我的老代碼的部分,有大量的多線一樣的回報:重構軌道如果其他語句與單行返回?

if ... 
return false 
else 
return true 
end 

怎會重構使用一個單一的線,並返回真或假?

+0

可能重複http://stackoverflow.com/questions/ 4252936 /如何使用條件運算符在紅寶石) –

回答

8

foo是什麼,是你的if的權利,那麼你可以將其替換:

foo ? false : true 

這被稱爲三元運算符。

請注意,在你的情況,你可以簡單地做:

!foo 
的[?我如何使用條件運算符(:)在紅寶石(
+0

謝謝,所以如果request.env [「HTTP_REFERER」]? redirect_to:back:redirect_to root_path – Rubytastic

+3

'redirect_to request.referer? :back:root_path' – 2013-05-29 09:41:06

+0

@santhosh解決方案很好 – apneadiving