4
如何通过关系显示has_many中的唯一记录?
我想知道通过Rails3中的关系显示has_many中唯一记录的最佳方法是什么。 我有三种模式: 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! 当产品有多个订单记录时可以使用,但是如果产品仅订购一次,则会生成错误。(排名是在其他位置定义的自定义排序功能) …