Вопрос

У меня возникли проблемы с тем, чтобы заставить ThinkingSphinx распознать мое состояние.

Моя модель обсуждения включает в себя следующий код:

define_index do
  indexes [subject, body], :as => :text
  indexes replies.body, :as => :reply_text
  set_property :delta => true
end

И, как и ожидалось, этот поиск

Discussion.search "handy"

возвращает любое обсуждение со словом "удобно" в теме, тексте или в тексте одного из его ответов.

Теперь я реализую функцию "удаления сообщений", и я хочу показывать только обсуждения, в которых поле называется:disabled == false.

К сожалению, этот поиск:

Discussion.search "handy", :conditions => { :disabled => false }

всегда возвращает пустой массив, несмотря ни на что.

Почему?

Это было полезно?

Решение

Вам нужно будет иметь атрибут disabled определенный в вашем define_index блок:

define_index do
  indexes [subject, body], :as => :text
  indexes replies.body, :as => :reply_text

  has disabled

  set_property :delta => true
end

Как только вы сделаете это, остановите Sphinx, переиндексируйте и перезапустите, и, надеюсь, это должно сработать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top