自定义过滤器到活动管理员以在索引页面上提取多行
Custom filter to active admin to extract multiple rows on Index page
如果满足条件,我有一个工作代码可以过滤掉一行
ransacker :custome_search, formatter: proc { |v|
user = Util.new(param: v.strip).user. # gets the data from an external service
id = user.present? ? user.id : nil
id = id.presence
} do |parent|
parent.table[:id]
end
我的索引页中有一个过滤器
filter :custome_search, label: 'Custom Data Search:', filters: ['equals']
这项工作很好,但现在我必须更改它以适应多个元组
所以我将代码更改为
ransacker :custome_search, formatter: proc { |v|
users = Util.new(param: v.strip).find_users
ids = users.present? ? users.pluck(:id) : nil # now returns an array instead of just one id [1,2,3]
ids = ids.presence
} do |parent|
parent.table[:id]
end
上面的代码显示零结果,因为内部形成的查询结果是
SELECT COUNT(*) FROM (SELECT 1 AS one FROM "users" WHERE "users"."id" = NULL LIMIT OFFSET ) subquery_for_count /*controller:users,action:index*/ [["LIMIT", 30], ["OFFSET", 0]]
但是如果我做一个
ids=ids.first
同样会显示一行,
如何更改我的代码以在索引页上显示多行
我正在使用 active admin 2.0.0
搜查代码很好,我只需要更改索引页上的过滤器,任何这些都可以工作
filter :custome_search, label: 'Custom Data Search:', filters: ['in']
或
filter :custome_search_in, label: 'Custom Data Search:', as: :string
如果满足条件,我有一个工作代码可以过滤掉一行
ransacker :custome_search, formatter: proc { |v|
user = Util.new(param: v.strip).user. # gets the data from an external service
id = user.present? ? user.id : nil
id = id.presence
} do |parent|
parent.table[:id]
end
我的索引页中有一个过滤器
filter :custome_search, label: 'Custom Data Search:', filters: ['equals']
这项工作很好,但现在我必须更改它以适应多个元组 所以我将代码更改为
ransacker :custome_search, formatter: proc { |v|
users = Util.new(param: v.strip).find_users
ids = users.present? ? users.pluck(:id) : nil # now returns an array instead of just one id [1,2,3]
ids = ids.presence
} do |parent|
parent.table[:id]
end
上面的代码显示零结果,因为内部形成的查询结果是
SELECT COUNT(*) FROM (SELECT 1 AS one FROM "users" WHERE "users"."id" = NULL LIMIT OFFSET ) subquery_for_count /*controller:users,action:index*/ [["LIMIT", 30], ["OFFSET", 0]]
但是如果我做一个
ids=ids.first
同样会显示一行, 如何更改我的代码以在索引页上显示多行 我正在使用 active admin 2.0.0
搜查代码很好,我只需要更改索引页上的过滤器,任何这些都可以工作
filter :custome_search, label: 'Custom Data Search:', filters: ['in']
或
filter :custome_search_in, label: 'Custom Data Search:', as: :string