1

鉴于这些表结构和模型,我该如何在 Ad 类中实现“流行”方法——我只想返回按点击次数排序的广告。

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