2013-09-26 20 views
2

我有RoR应用程序,我想改变我的代码的一些线条,以更优雅。红宝石当零或空字符串

foo = params[:customer][:language].nil? or params[:customer][:language].empty? ? 'es' : params[:customer][:language] 

我尝试用

foo = params[:customer][:language] || 'es' 

但它到底是不一样的。

在此先感谢。

+0

什么''空白方法? – zrl3dx

+0

http://api.rubyonrails.org/classes/Object.html#method-i-blank-3F –

回答

7

可以使用的ActiveSupport的Object#presence方法,是这样的:

foo = params[:customer][:language].presence || 'es' 
+2

'#presence'非常有用。特别是如果你必须链接多个或类似的:'city.presence || country.presence || planet.presence'。该行将返回第一个非零或非“”结果。 –