4
関係を通じてhas_manyからの一意のレコードを表示する方法は?
Rails3の関係を通じて、has_manyからの一意のレコードを表示する最良の方法は何でしょうか。 私には3つのモデルがあります。 class User < ActiveRecord::Base has_many :orders has_many :products, :through => :orders end class Products < ActiveRecord::Base has_many :orders has_many :users, :through => :orders end class Order < ActiveRecord::Base belongs_to :user, :counter_cache => true belongs_to :product, :counter_cache => true end 顧客が注文したすべての製品をショーページにリストしたいとします。 一部の製品を複数回注文した可能性があるため、counter_cacheを使用して、注文数に基づいて降順で表示しています。 しかし、彼らが製品を複数回注文した場合、私は各製品が一度だけリストされることを確認する必要があります。 @products = @user.products.ranked(:limit => 10).uniq! 製品に複数の注文レコードがある場合に機能しますが、製品が一度しか注文されていない場合はエラーが生成されます。(ランク付けは別の場所で定義されたカスタムソート関数です) …