2013-06-14 2 views
0

Я пытаюсь реализовать поиск Sunspot: Моя модель «Фото» has_many «Категории»: через «Теги». Таким образом, поиск должен иметь возможность искать имя фотографии и с возможностью поиска только те, которые помечены определенной категорией, с параметрами, похожими на такие:
search? Name = aaa & Категории = bbb + ccc ... который, например, должен дать все фотографии с aaa в названии и которые помечены bbb и/или cccНастройка Sunspot-поиск с has_many ... через соединение

Проблема заключается в поисковом блоке в photo.rb-модели. Я не могу понять, как это сделать, и, похоже, нет никакой помощи для has_many: через доступные соединения.

В настоящее время я застрял с

photo.rb: 

searchable do 
    text :name 
    ... 
    integer :tag_ids, :multiple => true, :references => Tag do |p| 
    p.tags.map(&:id) 
    end 
    integer :category_ids, :multiple => true, :references => Category do 
    categories.map(&:id) 
    end 
    text :categories do |p| 
    p.categories.map(&:name) 
    end 
end 

category.rb: 
searchable do 
    text :name 
    integer :id 
end 

, который дает мне

undefined method `categories' for #<Sunspot::DSL::Search:0x5d7d208> 

Как делают для поиска блоков, которые должны быть изменены? Заранее большое спасибо!

ответ

0

ОК, произошла ошибка в моем синтаксисе контроллера. отношения «много-в-отношениях» - это то же самое, что и «многие отношения» в солнечном пятне.

Смежные вопросы