これらのテーブル構造とモデルが与えられた場合、Ad クラスに「popular」メソッドを実装するにはどうすればよいでしょうか。単純に、ヒット数で並べ替えられた広告を返したいだけです。
require 'sequel'
db = Sequel.sqlite
db.create_table(:users){
primary_key :id
}
db.create_table(:ads){
primary_key :id
foreign_key :user_id, :users
}
db.create_table(:hits){
primary_key :id
}
db.create_join_table(ad_id: :ads, hit_id: :hits)
class User < Sequel::Model
one_to_many :ads
end
class Hit < Sequel::Model
end
class Ad < Sequel::Model
many_to_one :user
many_to_many :hits
def self.popular
#return ads with most hits first
end
end
User.create
Ad.create user: User[1]
Ad.create user: User[1]
Ad[1].add_hit Hit.create
Ad[2].add_hit Hit.create
Ad[2].add_hit Hit.create
Ad.popular