用于连接的Rails方法

时间:2012-03-11 13:14:52

标签: ruby-on-rails ruby

是否可以将数组['a', 'b', 'c']连接到字符串"a, b and c"? 但['a', 'b']应转换为"a and b"

3 个答案:

答案 0 :(得分:7)

Rails提供to_sentence帮助程序:

> ['a', 'b'].to_sentence
 => "a and b" 
> ['a', 'b', 'c'].to_sentence
 => "a, b, and c" 

如果您想要a, b and c而不是a, b, and c,则可以更改last_word_connector

> ['a', 'b', 'c'].to_sentence(last_word_connector: " and ")
 => "a, b and c" 

答案 1 :(得分:2)

a = %w{ a b }
str = a[0..-3].each_with_object("") do |item, res|
 res << "#{item}, "
 res
end
str << "#{a[-2]} and  #{a[-1]}"
p str

答案 2 :(得分:1)

a = ['a', 'b', 'c']
result = a[0...-1].join ', '
result += " and #{a[-1]}" if a.length > 1
result # => a, b and C

a = ['a', 'b']
result = a[0...-1].join ', '
result += " and #{a[-1]}" if a.length > 1
result # => a and b