我使用ransack来处理基本的自定义过滤器,但我不知道如何处理具有(包含,等于,开始,结束)等选项的活动管理字符串过滤器。
这是我到目前为止所做的,但是当按下过滤器按钮时会导致错误。
错误:
PG :: UndefinedFunction:ERROR:运算符不存在:整数~~ * 整数第1行:... unt_column FROM"付款"在哪里("付款"。" id" ILIKE 0)L ...... ^提示:没有运算符匹配给定的名称和参数类型。你可能会 需要添加显式类型转换。 :SELECT COUNT(count_column)FROM (选择1 AS count_column FROM"付款" WHERE("付款"。" id" ILIKE 0)LIMIT 10 OFFSET 0)subquery_for_count
Ransacker:
ransacker :part_number,
formatter: proc { |part_no|
tire_ids = Tire.where("part_number ILIKE ?", "%#{part_no}%").pluck(:id).flatten.uniq
owner_ids = ShoppingCartItem.where(item_id: tire_ids).pluck(:owner_id).flatten.uniq
shopping_cart_ids = ShoppingCart.where(id: owner_ids).pluck(:id).flatten.uniq
results = Payment.where(shopping_cart_id: shopping_cart_ids)
results = results.present? ? results.map(&:id) : [0]
}, splat_params: true do |parent|
parent.table[:id]
end