连接belongs_to关系而不加载父级?

时间:2012-09-05 18:20:31

标签: ruby-on-rails activerecord orm

我有两个与普通父母有belongs_to关系的模型。目前我正在做这样的事情;

child.parent.other_children

当我这样做时,它会对父进行SELECT查询,即使我甚至不需要它,因为我已在parent_id中拥有child。我想知道的是,是否有更好的写作方式而不仅仅是这个;

OtherChildren.find :parent_id => child.parent_id

1 个答案:

答案 0 :(得分:0)

你做这件事的方式是不可能的。主要是因为从一个Objected Oriented Point-of-view加载父级并访问它的方法就是你正在做的事情。

但是,稍微改变您的观点,您尝试从other_children对象访问child。为什么不在该类上创建一个新方法?

def siblings
  OtherChildren.find :parent_id => self.parent_id
end