0

Rails で 2 つの列のすべての値を含む配列を作成したいと考えていますが、それぞれは 1 回だけです。したがって、たとえば、列 "A"{1,5,7,1,7}と列 "B" にあり{3,2,3,1,4}ます。

「A」のすべての要素を含む配列が必要な場合は、次のように記述します。

Model.uniq.pluck(:A)

そして、私は得るでしょう{1,5,7}

Rails に 2 つの列で同じことを行うオプションがあるので、2 つの列に含まれるすべての値を一度に取得するだけですか? (ここにあるでしょう{1,5,7,3,2,4}

手伝ってくれてありがとう!

4

2 に答える 2

3

はい、複数の列名をに渡しますpluck

Model.pluck(:A, :B)
#=> [[1, 3], [5, 2], [7, 3], [1, 1], [7, 4]]

しかし、もちろん、値をまとめて一意にしたいので、次のようにします。

Model.pluck(:A, :B).flatten.uniq
#=> [1, 3, 5, 2, 7, 4]

Model.uniq.pluck(:A, :B).flatten個別の(つまり、A と B の組み合わせ) を取得するだけなので、実行してもうまくいきませんuniq

于 2013-11-10T17:59:07.677 に答える
0
records = []
Model.all.map {|e| records << [e.A, e.B] }
uniq_records = records.flatten.uniq

これがお役に立てば幸いです。

ありがとう

于 2013-11-10T17:59:23.050 に答える