2013-09-26 96 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'。該行將返回第一個非零或非「」結果。 –