1

これらのテーブル構造とモデルが与えられた場合、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
4

0 に答える 0