从序列化 array.join(', ') 中删除最后一个逗号?
Remove last comma from serialized array.join(', ')?
我想删除数组中的最后一个逗号。例如,self.committed.join(', ').titleize
产生 "Sun, Mon, Tue, Wed, Thu, Fri, Sat,".
我不知道答案是否以某种方式删除了数组 ["sun", "mon", "tue", "wed", "thu", "fri", "sat", ""]
末尾的空 ""
这样我就可以使用 to_sentence
而它不会出来的样子是这样的"Sun, Mon, Tue, Wed, Thu, Fri, Sat, And"
或者 join
是否有办法防止额外的逗号?
型号
serialize :committed, Array
db
t.text "committed", default: "---\n- sun\n- mon\n- tue\n- wed\n- thu\n- fri\n- sat\n"
我不想更改 serialize
或 db
,但我愿意将其作为最后的手段。
不清楚为什么数组的最后一个元素是空字符串,但是很容易跳过:
self.committed[0..-2].to_sentence.titleize
或:
self.committed.reject(&:blank?).to_sentence.titleize
后者将跳过所有空白元素,而前者将跳过最后一个元素,无论其内容如何。
如果你想在调用to_sentence
之前将单词单独大写(以避免"and"被大写),只需使用map
:
self.committed[0..-2].map(&:titleize).to_sentence
我想删除数组中的最后一个逗号。例如,self.committed.join(', ').titleize
产生 "Sun, Mon, Tue, Wed, Thu, Fri, Sat,".
我不知道答案是否以某种方式删除了数组 ["sun", "mon", "tue", "wed", "thu", "fri", "sat", ""]
末尾的空 ""
这样我就可以使用 to_sentence
而它不会出来的样子是这样的"Sun, Mon, Tue, Wed, Thu, Fri, Sat, And"
或者 join
是否有办法防止额外的逗号?
型号
serialize :committed, Array
db
t.text "committed", default: "---\n- sun\n- mon\n- tue\n- wed\n- thu\n- fri\n- sat\n"
我不想更改 serialize
或 db
,但我愿意将其作为最后的手段。
不清楚为什么数组的最后一个元素是空字符串,但是很容易跳过:
self.committed[0..-2].to_sentence.titleize
或:
self.committed.reject(&:blank?).to_sentence.titleize
后者将跳过所有空白元素,而前者将跳过最后一个元素,无论其内容如何。
如果你想在调用to_sentence
之前将单词单独大写(以避免"and"被大写),只需使用map
:
self.committed[0..-2].map(&:titleize).to_sentence