-1

我有这样的模型

class Ads::Posting < ActiveRecord:Base
  has_one :child, class_name: 'Ads::Posting', foreign_key: :posting_id
  belongs_to :parent, class_name: 'Ads::Posting', foreign_key: :posting_id
end

我需要编写没有孩子的所有帖子的范围。任何想法如何做到这一点?

4

2 回答 2

0

那个模型没有意义!

孩子自动成为父母。

你到底想做什么?一颗树?

那么你需要添加到迁移

t.integer :parent_id, null: false

在你的模型中

has_one :child, class_name: 'Ads::Posting', foreign_key: :parent_id

为了使它更深,看看

https://github.com/stefankroes/ancestry

也许那对你有帮助。

于 2013-01-14T16:51:31.637 回答
0

我相信您可以使用 aLEFT JOIN和 a 对where子句的限制来做到这一点。

scope :my_scope, 
  joins("LEFT JOIN postings ON postings.ad_id = ads.id").where("postings.id IS NULL")
于 2013-01-14T16:52:17.150 回答