0

无论我使用什么语言,我总是需要显示一个由分隔符分隔的字符串列表。

假设我有一个产品集合,需要显示其名称,并用', '. 所以我有一个产品集合,每个产品都有一个“名称”属性。我正在寻找一些 Rails 方法/帮助器(如果它不存在,也许你可以给我一些想法来以 Rails 方式构建它)将接收一个集合,一个将在每个集合项上调用的属性/方法和一个字符串作为分隔符。

但我想要的东西最后不包括分隔符,因为我将以“笔记本、计算机、键盘、鼠标”结尾,最后两个字符不应该在那里。

前任:

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

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

谢谢!

4

3 回答 3

1

您应该尝试使用助手 to_sentence。

如果你有一个数组,你可以做类似的事情

array.to_sentence。如果您的数组包含数据香蕉、苹果、巧克力,它将变为:香蕉、苹果和巧克力。

所以现在如果你的 AR 模型有一个名为的字段,你可以做类似的事情

MyModel.all.map { |r| r.name }.to_sentence
于 2010-11-23T22:21:50.763 回答
1
@products.map(&:title).join(', ')
于 2010-11-23T22:27:30.807 回答
1

正如@VP 提到的,Array#to_sentence 在rails 中做得很好。它的代码在这里:

https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/array/conversions.rb

话虽如此,它对牛津逗号的使用是有问题的:-)

于 2010-11-23T22:32:59.013 回答