如何在我的模型范围之外的活动管理员上创建/处理自定义字符串过滤器

时间:2018-03-02 00:26:32

标签: ruby-on-rails ruby activeadmin

我使用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

过滤器: Active admin String Filter Image

0 个答案:

没有答案