我有两个不同的模型,1:N关系。 让它们命名为“为MyObject”和“关系”ActiveRecord范围:关于选择关系的奇怪行为
class Myobject < ActiveRecord::Base
has_many :related
scope :without_related, includes(:related).select{ |o| o.related.size == 0 }
end
class Related < ActiveRecord::Base
end
定义的范围似乎工作的伟大,只要我不创建Myobjects新分配到相关:
- 直接轨C命令“Myobject.includes(:相关)。选择......(在适用范围定义)按预期工作
- 呼叫至范围‘Myobject.without_related’仍返回已在此期间已分配的对象
看起来这可以通过重新启动导航控制台或重新启动Webrick来解决。 但我不能总是重新启动一个web应用程序,因为对象之间的关系已被改变;)
有什么方法可以解决这个问题或以更好的方式编写范围?
PS:我需要这个查询的范围在MYOBJECT模型
就忘了这个轨道功能。有时候简单是最好的;) –