从序列化的array.join(',')中删除最后一个逗号?

时间:2016-03-14 01:55:55

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

我想删除数组中的最后一个逗号。例如,self.committed.join(', ').titleize生成"太阳,星期一,星期二,星期三,星期四,星期五,星期六,"。

我不知道答案是否以某种方式删除了数组""末尾的空["sun", "mon", "tue", "wed", "thu", "fri", "sat", ""],这样我就可以使用to_sentence赢得了#39}看起来像这样"太阳,星期一,星期二,星期三,星期四,星期五,星期六,和#34;

或者,join是否有办法阻止其他逗号?

模型

serialize :committed, Array

分贝

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

我不想更改serializedb,但作为最后的手段,我可​​以对此进行更改。

1 个答案:

答案 0 :(得分:3)

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

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