2011-08-14 2 views
0

내 모델 색인 생성에 문제가 있습니다. 오류 여기관계가 색인을 생성하지 않습니다

rake thinking_sphinx:index --trace 

됩니다 :

undefined method `priority' for #<ThinkingSphinx::Source:0x00000106ae1738> 

사람이 왜 tracker을 알고

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 

I 색인 모델이 실행 해요 : 여기

내 모델입니다 관계는 작동하지만 source은 아닌가?
OS X 10.7에서 Sphinx 0.9.9-release, Rails 3.1.0.rc5를 사용하고 있습니다.

업데이트

이 레이크 작업을 사용할 때 인덱싱-부분에서 오류를 얻을하지 않습니다는 (인덱스 대신를 인덱싱).

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) 

이 오류의 결과

레스 이 오류 메시지는 다음과 같습니다.

NoMethodError: undefined method `priority' for #<ThinkingSphinx::Source:0x00000106b0ff98> 

이유는 무엇입니까?

업데이트 2

대신 rake thinking_sphinx:indexrake thinking_sphinx:reindex의 데이터베이스를 인덱싱하는 rake thinking_sphinx:rebuild을 사용합니다. 목록에서 설명하고있는 바와 같이

+0

Thinking-Sphinx에'Source' 클래스가있는 것 같습니다. 사용자는'Source' 모델을 가지고 있으며이를 해결할 수 없습니다. ''source (: priority)'를 시도해보십시오 ... –

+0

힌트를 주셔서 감사합니다. 그러나 작동하지 않습니다. 내 게시물을 업데이트했습니다. – Oleander

+0

'소스'모델의 이름을 변경하십시오. TS에는 자신의'source' 메소드가 있습니다 (http://rubydoc.info/gems/thinking-sphinx/2.0. –

답변

1

, 당신은이 문제를 해결하기 위해 assoc 방법을 사용해야합니다

has assoc(:source).priority 

여기서 문제는 후드, 스핑크스 지수는 소스를 가지고 - 그래서 스핑크스가 건설하고 사고 원인을 자동적으로 예약 된 소스 메소드. 나는 그것을 정말로 바꿔야하지만, 그 동안 당신 주위에 당신을 데려 올 것입니다.