Rails模型中的条件逗号

时间:2012-01-09 22:57:27

标签: ruby ruby-on-rails-3

在模型中定义包含可以为nil的列的方法的最佳方法是什么,但如果不是nil则用逗号或连字符分隔?例如,城市和州需要使用逗号的位置。这种方法显然只有在需要城市,州和国家的情况下才有效。否则,我留下了不受欢迎的逗号。例如,用户可能只有一个州列出或可能只有一个城市和国家。

用户模型

 def location
      "#{city}, #{state}, #{country}"
 end

我试图避免一些非常丑陋的代码,类似于我在下面提到的代码。有没有人知道更清洁或更漂亮的方式来写这个?

这是我想要避免的一些丑陋,糟糕的方法。基本上,明确写出每种可能性。

 def location
   if !city.blank? && state.blank? && country.blank?
   "#{city}, #{state}, #{country}"
   end
 end

1 个答案:

答案 0 :(得分:7)

加入非空白的值:

def location
  [city, state, country].reject(&:blank?).join(", ")
end