我创建了一个可以在 Rails 中销售音乐的网站。我想根据他们的音乐销量返回本周最受欢迎的艺术家。下面是模型关系的简要概述。
楷模
# Artist
attr_accessible :name, :website etc.
has_many :songs, :through => :artist_song
has_many :artist_song
# Cart
attr_accessible :purchased_at, :user_id, :id, :songs, :cart_song
has_many :songs, :through => :cart_song
has_many :cart_song
# Song
has_many :carts, :through => :cart_song
has_many :cart_song
has_many :artists, :through => :artist_song
has_many :artist_song
我可以使用下面的代码检索过去“x”天所有售出的歌曲,但不确定如何在这些结果中实现分组或计数。
Song.find(:all, :conditions => ['carts.purchased_at IS NOT NULL AND carts.purchased_at >= ?', 7.days.ago.at_midnight], :include => :carts)
我猜你会通过一个独特的属性进行某种形式的分组或计数,但我有点卡在这里,所以任何帮助都会非常感激。谢谢。