제품 모델, 카테고리 모델 및 product_categorization 모델 (연관을 통해 has_many ...)이 있습니다. 나는 제품 검색을 수행하기 위해 meta_search 보석을 사용하고 있습니다. 웬일인지, 비록 나의 로그가 정확한 criterias를 모으고 있지만, 그것은 카테고리에 기반하여 제품을 필터링하지 않고있다. 내가 무엇을 선택하든 항상 모든 제품을 표시합니다.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은 패치를 얻지 않으면 레일 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"를 삭제해야했습니다. 나는 배열이있을 때에 만 any가 필요할 것이라고 생각한다. 확실하지 않다. – noob
아, 이해가 가는군요! 예, 배열 선택을 기대합니다. 다중 선택 목록이있는 것처럼 말입니다. – tardate