我有產品模型,類別模型和product_categorization模型(has_many ...,通過關聯)。我正在使用meta_search gem來進行產品搜索。出於某種原因,即使我的日誌正在拉動正確的標準,但不會根據類別過濾產品。無論我選擇什麼,它總是顯示所有的產品。rails - 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更好?謝謝。
UPDATE:解決:
的sooo很多時間琢磨這個過之後,我想通了。我不確定這是否是解釋,但是*從「:product_categorizations_category_id_equals_any」*中刪除「any」後,我才能使用它。我認爲原因是因爲這是一個通過關聯的has_many,category_id不是作爲數組存儲的,所以「any」不相關。我的解釋可能完全失效,但它的工作原理。
感謝您的回覆。它實際上只是要求我從「product_categorizations_category_id_equals_any」中刪除「any」。我認爲只有有數組時纔有必要這樣做?不確定。 – noob
ahah,這很有道理!是的,_any需要一個數組,就像你有一個多選列表一樣 – tardate