私はショッピングカートを扱っていますが、その中には多くの製品があります。製品は、複数の異なる会社によって販売することができます。私がしようとしているのは、ベンダーごとに1つの注文を作成できるように、企業を一意に選択することです。Rails 4 Uniqオブジェクトの選択関連するAR CollectionProxy
ハック
companies = []
@cart.products.each { |p| companies << p.company }
companies.uniq
#create order for each company
私は#pluck
は、私がここで使用されなければならないものですが、私は独自に「私の会社を集め、より効率的な方法があるように持っていることを知っていますかどうかわからないんだけど" #uniq
は、私は私の入札モデルには:company_id
を持っていない@cart.products.pluck(:company)
を私のために働いているように見える、とどちらもいないので、それはのような提供の列に値の配列を取得するために使用されるhas_many/has_one
関係
恐ろしい、これは動作します..あなたがのために明確にすることができアンパサンドは何をしていますか?私はいつ、いつそれを含めないかを決して知らなかった。 – gemart
確かです。これは '@ cart.products.collect(&:company.to_proc)'の短縮形です。これは、 '@cart.products.collect {| prod | prod.company} '。これは 'to_proc'メソッドを実装または継承するオブジェクトに対してのみ機能します。ここで大きな説明があります:http://stackoverflow.com/questions/1217088/what-does-mapname-mean-in-ruby – Krzysztof