代码之家  ›  专栏  ›  技术社区  ›  empz

铁轨混凝土?

  •  0
  • empz  · 技术社区  · 15 年前

    不管我使用的是哪种语言,我总是需要显示一个由分隔符分隔的字符串列表。

    比方说,我有一个产品集合,需要用 ', ' . 所以我有一个产品集合,每个产品都有一个“name”属性。我正在寻找一些Rails方法/Helpver(如果它不存在,也许你可以给我以Rails方式构建它的想法),它将接收一个集合,一个属性/方法将被调用在每个集合项和一个分隔符的字符串中。

    但我想要的东西,不包括在最后的分隔符,因为我会以“笔记本,电脑,键盘,鼠标”结束,最后两个字符不应该在那里。

    前任:

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

    假设@products有4个产品的名字。

    谢谢!

    3 回复  |  直到 15 年前
        1
  •  1
  •   VP.    15 年前

    你应该试试帮手的句子。

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

    排列句。如果数组中有数据香蕉、苹果、巧克力,它将变成: 香蕉、苹果和巧克力。

    MyModel.all.map { |r| r.name }.to_sentence
    
        2
  •  1
  •   glebm    15 年前
    @products.map(&:title).join(', ')
    
        3
  •  1
  •   noodl    15 年前

    正如@VP提到的,Array-to-u语句在rails中很好地完成了这项工作。代码在这里:

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

    这么说,牛津逗号的用法是有问题的:-)