Ruby - 来自一系列单词的英语句子列表

Mar*_*ins 0 ruby ruby-on-rails

是否有一个Ruby/Rails"魔术"助手来自一系列单词,比如

["Sugar", "Water", "Lemons", "Tea"]
Run Code Online (Sandbox Code Playgroud)

单个字符串,可以放在一个句子中:

"Sugar, Water, Lemons and Tea"
Run Code Online (Sandbox Code Playgroud)

我知道array.join(),但最后一次进入之前的"和"很重要.
我只是问,因为我知道Ruby和Rails有很多有用的方法潜伏在黑暗中我想保持我的代码尽可能干净

ror*_*nce 10

好像这就是你要找的东西:)

http://apidock.com/rails/Array/to_sentence

to_sentence(options = {})

"将数组转换为逗号分隔的句子,其中最后一个元素由连接词加入."

例:

["Sugar", "Water", "Lemons", "Tea"].to_sentence # => "Sugar, Water, Lemons, and Tea"

你也可以传递选项,比如你的最后一个单词连接符:

["Sugar", "Water", "Lemons", "Tea"].to_sentence(last_word_connector: ' or ') # => "Sugar, Water, Lemons or Tea"

编辑:

正如Max Williams指出的那样,默认情况下会在最后一个单词旁边留下逗号.为避免这种情况,您可以显式声明" and "为最后一个单词连接符,因为默认情况下", and "

["Sugar", "Water", "Lemons", "Tea"].to_sentence(last_word_connector: ' and ') # => "Sugar, Water, Lemons and Tea"