Ruby on rails 3.2 思维斯芬克斯被调用而不是activerecord

Ruby on rails 3.2 思维斯芬克斯被调用而不是activerecord,ruby-on-rails-3.2,thinking-sphinx,Ruby On Rails 3.2,Thinking Sphinx,我有一个有很多报告的工作模式。报表模型的作用域为 作用域:未删除,其中(:已删除=>0) 如果我像这样从工作中调用范围 @job.reports.undeleted 我得到 斯芬克斯查询(16.3ms)@已删除0 斯芬克斯发现了0个结果 但如果我这样称呼它 @job.reports.where(:deleted=>0) 我得到 报告加载(0.4ms)从报告中选择报告,其中报告作业id=1907和报告已删除=0 它返回一个结果,这是预期的结果 在这种情况下,为什么要调用斯芬克斯呢?这只发生在生产中

我有一个有很多报告的工作模式。报表模型的作用域为

作用域:未删除,其中(:已删除=>0)

如果我像这样从工作中调用范围

@job.reports.undeleted

我得到

斯芬克斯查询(16.3ms)@已删除0 斯芬克斯发现了0个结果

但如果我这样称呼它

@job.reports.where(:deleted=>0)

我得到

报告加载(0.4ms)从
报告
中选择
报告
,其中
报告
作业id
=1907和
报告
已删除=0

它返回一个结果,这是预期的结果


在这种情况下,为什么要调用斯芬克斯呢?这只发生在生产中,而不是在开发中。认为Sphinx在这两种环境中都运行。

如评论中所述,这里的问题是Sphinx作用域和ActiveRecord作用域共享名称
未删除


我不完全清楚为什么有时一个优先,有时另一个优先,尽管我敢说这是由于在开发环境中重新加载Rails类造成的。

你有没有思考Sphinx范围?我没有声明任何。只是索引。哦,s**t。有一个。我的应用程序太大了,我放在里面的东西一半都记不起来了。我觉得很傻。谢谢