私のモデルのインデックスには何らかの問題があります。ここで関連はインデックスに登録されません
私のモデルである:
class Model < ActiveRecord::Base
define_index do
# ...
has tracker.open, as: :open, type: :boolean
has source.priority, as: :priority, type: :integer
# ...
end
belongs_to :tracker
belongs_to :source
end
私はモデルのインデックスにこれを実行している:
rake thinking_sphinx:index --trace
ここではエラーです:
undefined method `priority' for #<ThinkingSphinx::Source:0x00000106ae1738>
誰もが、なぜtracker
を知っています関係は動作しますが、source
は動作しませんか?
OS X 10.7でSphinx 0.9.9-release、Rails 3.1.0.rc5を使用しています。
更新
このrakeタスク(代わりにインデックスのREINDEX)を使用したとき、私は、インデックス部分の間にすべてのエラーを得ることはありません。
rake thinking_sphinx:reindex
問題は優先フィールドを使用できなくなったことです。 これは、検索時に使用されるコードは次のとおり
Model.search(with: {priority: [1]})
このコード行:
has source.priority
:このラインを使用
ArgumentError: wrong number of arguments (1 for 0) # Produced by the line above.
:
has source(:priority)
この誤差の結果
Resuこのエラーのメッセージ:
NoMethodError: undefined method `priority' for #<ThinkingSphinx::Source:0x00000106b0ff98>
誰でも知っていますか?
アップデート2
代わりrake thinking_sphinx:index
とrake thinking_sphinx:reindex
の、データベースのインデックスを再作成するrake thinking_sphinx:rebuild
を使用します。
Thinking-Sphinxに 'Source'クラスがあり、' Source'モデルがあり、TSがこれを解決できないようです。試してみてください '' source(:priority) '... –
ヒントはありがたいですが、うまくいきませんでした。私は自分の投稿を更新しました。 – Oleander
あなたの 'ソース'モデルの名前を変更しようとします。 TSには独自の 'source'メソッドがあります(http://rubydoc.info/gems/thinking-sphinx/2.0。 –