配列から値を収集するときは、次の Ruby 慣用句を使用するのが好きです。
users.collect &:email
しかし、これらの値を結合したい場合は、次のように展開する必要があります。
users.collect { |user| user.email }.join(", ")
これを行うより良い方法はありますか?
配列から値を収集するときは、次の Ruby 慣用句を使用するのが好きです。
users.collect &:email
しかし、これらの値を結合したい場合は、次のように展開する必要があります。
users.collect { |user| user.email }.join(", ")
これを行うより良い方法はありますか?
なぜ拡大する必要があるのか わかりません。あなたはこれを行うことができます:
users.collect(&:email).join(', ')
# or you can use collect's alias, map,
# which is a much better name for this operation :)
users.map(&:email).join(', ')
このコンテキストの&
演算子はSymbol#to_proc
. 基本的に、指定したシンボルを、レシーバーで呼び出して結果を返すメソッド名として扱います。