0

使用している言語に関係なく、区切り文字で区切られた文字列のリストを常に表示する必要があります。

たとえば、製品のコレクションがあり、その名前を で区切って表示する必要があるとします', '。だから私は、それぞれが「名前」属性を持つ製品のコレクションを持っています。コレクション、各コレクションアイテムで呼び出される属性/メソッドを受け取るRailsメソッド/ヘルパーを探しています(存在しない場合は、Railsの方法で構築するためのアイデアを教えてください)および区切り文字の文字列。

しかし、最後にセパレーターを含まないものが必要です。「ノートブック、コンピューター、キーボード、マウス」で終わるため、最後の2文字はそこにあってはなりません。

元:

concat_ws(@products, :title, ", ")
#displays: Notebook, Computer, Keyboard, Mouse

もちろん、 @products にその名前の製品が 4 つあるとします。

ありがとう!

4

3 に答える 3

1

ヘルパー to_sentence を試す必要があります。

配列がある場合は、次のようなことができます

array.to_sentence. 配列にバナナ、リンゴ、チョコレートのデータがある場合、バナナ、リンゴ、チョコレートになります。

という名前のフィールドを持つARモデルがある場合、次のようなことができます

MyModel.all.map { |r| r.name }.to_sentence
于 2010-11-23T22:21:50.763 に答える
1

@VP が述べたように、Array#to_sentence はレールでこの仕事をうまく行います。そのコードは次のとおりです。

https://github.com/rails/rails/blob/master/activesupport/lib/active_support/core_ext/array/conversions.rb

そうは言っても、オックスフォードコンマの使用は疑わしいです:-)

于 2010-11-23T22:32:59.013 に答える
1
@products.map(&:title).join(', ')
于 2010-11-23T22:27:30.807 に答える