2013-05-29 62 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