Можно ли как-нибудь пропустить применение default_scope ActiveRecord::Base к результатам поиска Thinking Sphinx?
Thinking Sphinx и ActiveRecord default_scope
Ответы (1)
Просто используйте метод unscoped
перед вызовом поиска.
См. дополнительную информацию
ИЗМЕНИТЬ
См. https://github.com/freelancing-god/thinking-sphinx/blob/master/lib/thinking_sphinx/search.rb#L89. Добавьте и выберите :ignore_default
, чтобы пропустить области действия. (Но это использует прицелы Sphinx, поэтому необходимо проверить).
person
Mark Huk
schedule
19.11.2011
это не работает, я пробовал
Article.unscoped.search(...)
и Article.unscoped {Article.search(...)}
, все они вернули результаты с заданной областью
- person leomayleomay; 19.11.2011
@ Марк, тебе не кажется, что это ошибка Thinking Sphinx, в строке 89 отсутствует параметр @ перед
- person leomayleomay; 19.11.2011
Article.search(keywords, :ignore_default => true)
возвращает результаты с областью действия, не повезло
- person leomayleomay; 19.11.2011
Получите to_sql в «Article.search (ключевые слова)». Затем мы можем выяснить, есть ли проблема в sql или в индексах.
- person Mark Huk; 19.11.2011
кажется, я не могу напрямую вызвать to_sql на
Article.search
- person leomayleomay; 19.11.2011
здесь указывает, что
ignore_default
используется для игнорирования области видимости sphinx по умолчанию, но области ActiveRecord::Base по умолчанию
- person leomayleomay; 20.11.2011