我有产品模型,类别模型和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