【发布时间】:2023-04-02 01:16:01
【问题描述】:
我有一个产品模型、一个类别模型和一个 product_categorization 模型(has_many...,通过关联)。我正在使用 meta_search gem 进行产品搜索。出于某种原因,即使我的日志提取了正确的标准,它也没有根据类别过滤产品。无论我选择什么,它总是显示所有产品。
产品控制器:
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 更好的选择?谢谢。
更新:已解决:
经过几个小时的思考,我终于明白了。我不确定这是不是解释,但在*从“:product_categorizations_category_id_equals_any”*中删除“任何”之后,我让它工作了。我认为原因是因为这是通过关联的 has_many,category_id 没有存储为数组,因此“any”不相关。我的解释可能完全错误,但它有效。
【问题讨论】:
标签: ruby-on-rails search has-many-through