나는 아주 아주 비슷한 질문을 전에 물었다. 이 질문에 대한 해킹 된 해결책은 더 많은 범위에서 연결하려는 경우에는 작동하지 않으므로 문제가 어디에서오고 있는지에 대해 좀 더 많은 정보를 묻습니다.생각하기 스핑크스 : 외래 키 속성 없음
# Relevant code only...
class Publication < ActiveRecord::Base
has_many :issues
has_many :articles, :through => :issues
end
class Issue < ActiveRecord::Base
belongs_to :publication
has_many :articles
end
class Article < ActiveRecord::Base
belongs_to :issue
define_index do
has issue(:publication_id), :as => :publication_id
end
end
따라서, 나는 다음과 같은 코드가 작동하는 기대 : 그러나
Publication.first.articles.search 'foobar'
, 그것은 다음과 같은 오류 반환 :
RuntimeError: Missing Attribute for Foreign Key publication_id
from /home/matchu/rails/torch/vendor/plugins/thinking-sphinx/lib/thinking_sphinx/active_record/has_many_association.rb:18:in `search'
이 암시하는 것을 publication_id 속성이 그 나는 특별히 존재하지 않는다. 그러나 그것은 그렇다.
Article.search :with => {:publication_id => 1}
그래서이 구문을 사용할 수 있다고 가정합니다. 이 문제는 특히 긴급하지 않습니다. 그러나 나는 이것이 왜 발생하는지에 대해 궁금합니다. 이견있는 사람?
미래의 독자들에게 : Pat이 문제를 해결하고 문제를 해결했습니다. 감사! – Matchu
내 인덱스가 동일한 오류를 던지는 이유에 대한 해결책을 찾기 위해 비틀 거리며 넘어졌습니다. 나는 'Client'의 연관성에 대한 색인을 생성하지 않았으므로 내 색인에'client (: client_id), as : : client_id'가 추가되었습니다 (위의 문제는 TS에서 오랫동안 해결되었습니다). 안내 주셔서 감사합니다! –