2

すべてのモデルに対して、デフォルトでデルタ インデックス作成をオンにしています。

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

Rspec の実行時にデルタ インデックス作成をオフにしたい (テストの実行に時間がかかり、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.rbTSドキュメントにあるように、ファイルで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_enabledThinking Sphinx v1/v2用の設定です。

Thinking Sphinx v3 (最新の 3.0.3 に更新することを強くお勧めします) では、代わりに次のコマンドを使用できます。

ThinkingSphinx::Deltas.suspend!

ある時点でそれらを元に戻したい場合は、resume!方法もあります。

于 2013-05-27T14:09:41.067 に答える