如何在以下引用自我?
scope :children, where("parent_id = ?", self.id)
自我似乎在这种情况下不起作用
答案 0 :(得分:10)
通常范围是在课堂上链接的,如下所示:
Foo.recent_entries.posts # Or whatever.
你需要一个lambda范围来获得相同的行为:
scope :children_of, lambda { |o| where("parent_id=?", o.id }
我假设您正在尝试获取特定实例的子项:
parent.children
这将是一个实例方法,但是:这看起来像一个基本的self-referencing association,而不是需要范围的东西。
如果你正在制作一棵树,那就有宝石,例如closure-tree,ancestry和其他。