【问题标题】:Remove last comma from serialized array.join(', ')?从序列化的array.join(',')中删除最后一个逗号?
【发布时间】:2016-06-28 22:46:07
【问题描述】:

我想删除数组中的最后一个逗号。例如,self.committed.join(', ').titleize 生成“Sun, Mon, Tue, Wed, Thu, Fri, Sat”。

我不知道答案是否会以某种方式删除数组 ["sun", "mon", "tue", "wed", "thu", "fri", "sat", ""] 末尾的空 "" 以便我可以使用 to_sentence 并且它不会看起来像这样“太阳,周一、周二、周三、周四、周五、周六和“

或者如果有办法使用join 来防止额外的逗号?

型号

serialize :committed, Array

数据库

t.text     "committed",       default: "---\n- sun\n- mon\n- tue\n- wed\n- thu\n- fri\n- sat\n"

我不想更改 serializedb,但我愿意将其作为最后的手段。

【问题讨论】:

    标签: ruby-on-rails arrays ruby join comma


    【解决方案1】:

    不清楚为什么数组有一个空字符串作为最后一个元素,但是很容易跳过它:

    self.committed[0..-2].to_sentence.titleize
    

    或者:

    self.committed.reject(&:blank?).to_sentence.titleize
    

    后者将跳过所有空白元素,而前者将跳过最后一个元素而不管其内容。

    如果你想在调用to_sentence之前将单词单独大写(避免“和”被大写),只需使用map

    self.committed[0..-2].map(&:titleize).to_sentence
    

    【讨论】:

    • 非常感谢 Jordan 我也不知道为什么,很奇怪!您删除了最后一个逗号,但现在它也将“和”一词命名为标题。你知道如何为“And”创建一个例外吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 2013-11-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多