2010-11-23 50 views
0

无论我使用何种语言,我总是需要显示由某个分隔符分隔的字符串列表。CONCAT_WS for Rails?

比方说,我有一个产品集合,需要显示其名称,由', '分隔。 所以我有一个产品集合,其中每个产品都有'name'属性。我正在寻找一些Rails的方法/助手(如果它不存在,也许你可以给我想法,以轨道方式构建它),它会收到一个集合,一个属性/方法将在每个集合项目上调用和分隔符的字符串。

但我希望在最后不包含分隔符,因为我将以“笔记本,计算机,键盘,鼠标”结尾,最后2个字符不应该在那里。

例:

concat_ws(@products, :title, ", ") 
#displays: Notebook, Computer, Keyboard, Mouse 

假设@products有4个产品,当然名称。

谢谢!

回答

1

你应该尝试助手to_sentence。

如果你有一个数组,你可以这样做

array.to_sentence。如果你的数组有香蕉,苹果,巧克力数据,它将变成: 香蕉,苹果和巧克力。

所以,现在,如果你有一个名为场的AR模型,你可以不喜欢

MyModel.all.map { |r| r.name }.to_sentence 
+0

我喜欢to_sentence帮手,但我怎样才能使有产品名称的数组一个来自has_many关系的完整AR对象的数组? – emzero 2010-11-23 22:30:37

+0

我确实更新了我的答案:-) – 2010-11-24 09:56:42

1
@products.map(&:title).join(', ')