У меня есть модель продукта, модель категории и модель product_categorization (has_many ..., через ассоциацию).Я использую драгоценный камень meta_search для проведения поиска товаров.По какой-то причине, хотя мой журнал проверяет правильные критерии, он не фильтрует продукты по категории.Независимо от того, что я выбираю, он всегда отображает все продукты.
Контроллер продукта:
def update
params[:product][:category_ids] ||= []
@product = Product.find(params[:id])
if @product.update_attributes(params[:product])
redirect_to @product
else
render "edit"
end
Форма поиска продукта:
<div class="field">
<%= f.label :category %>
<%= f.collection_select :product_categorizations_category_id_equals_any, Category.all, :id, :name, :include_blank => true, :prompt => "Select a category" %>
</div>
Любая помощь будет оценена.Кроме того, есть ли лучший камень, который я могу использовать?Я знаю, что searchlogic не совместим с rails 3, если вы не получите патч.Является ли исправленная версия searchlogic лучшим вариантом, чем meta_search?Благодарю.
ОБНОВЛЕНИЕ: РАЗРЕШЕНО:
Оооочень после многих часов размышлений над этим, я понял это.Я не уверен, что это объяснение, но после * удаления "any" из ": product_categorizations_category_id_equals_any" *, я заставил его работать.Я думаю, причина в том, что это has_many через ассоциацию, category_id не хранится в виде массива, поэтому «any» не имеет значения.Мое объяснение может быть полностью неверным, но оно работает.