3

次のように配列を文字列にシリアル化する既製のライブラリ/メソッドはありますか?

[] #=> ""
["Peter"] #=> "Peter"
["Peter", "Paul"] #=> "Peter and Paul"
["Peter", "Paul", "Mary"] #=> "Peter, Paul, and Mary" (with Oxford comma)
["Peter", "Paul", "Mary"] #=> "Peter, Paul and Mary" (without Oxford comma)

そうでない場合、これを行うための最短の方法は何ですか?私はこの形でそれを望みます:

class Array
    def conjoin oxford_comma = true
        ...
    end
end
4

1 に答える 1

5

うん。

require 'active_support/core_ext/array/conversions'

["Peter", "Paul", "Mary"].to_sentence
=> "Peter, Paul, and Mary"

またはオックスフォードコンマなし。

["Peter", "Paul", "Mary"].to_sentence(:last_word_connector => ' and ')
=> "Peter, Paul and Mary" 

ここに apidockからのより多くの情報があります

また、少なくともrailsを使用している場合は、i18nを使用して言語ファイルからこれを制御し、このロジックの重複や複雑さの追加を回避できることにも注意してください。

于 2012-08-21T02:37:14.673 に答える