2

默认情况下,我为所有模型打开了 Delta 索引:

ThinkingSphinx::Index.define :book, :with => :active_record, :delta => (::Padrino.env == :production ? ThinkingSphinx::Deltas::SidekiqDelta : true) do

我想在运行 Rspec 时关闭 delta 索引(因为运行测试需要更长的时间,而且我还收到无法访问 delta.spl 文件的错误FATAL: failed to open db/sphinx/test/book_delta.spl: No such file or directory, will not index. Try --rotate option.:)

spec/support/sphinx.rb正如 TS 文档中所说,我试图在文件中将其设置为 false :

config.before(:suite) do
    ThinkingSphinx::Test.init, suppress_delta_output: false
    ThinkingSphinx.deltas_enabled  = false # try to turn delta indexing off for the Controller and Model tests   
  end

但是对于插入新数据的每个测试,仍然会执行增量索引,即使对于使用 Factory Girl 工厂插入的数据也是如此。

将这一行:ThinkingSphinx.deltas_enabled = false放入我的任何规范都会导致缺少方法错误:: undefined methoddeltas_enabled=' for ThinkingSphinx:Module`

我怎样才能关闭它?

4

1 回答 1

5

ThinkingSphinx.deltas_enabled设置适用于 Thinking Sphinx v1/v2。

使用 Thinking Sphinx v3(我强烈建议更新到最新的 3.0.3),您可以使用以下命令来代替:

ThinkingSphinx::Deltas.suspend!

如果您想在某个时候重新打开它们,也有一种resume!方法。

于 2013-05-27T14:09:41.067 回答