ActiveAdmin自定义资源检索 - 在ID应为Name时按ID搜索

时间:2015-04-03 16:47:37

标签: ruby-on-rails ruby-on-rails-4 activeadmin

每个人都有一个类别。我想创建一个过滤器,我可以在其中选择一个类别并查看该类别中的所有人员。目前,当我选择一个类别时,它应该在搜索名称时搜索该类别的ID#。这是URL http://localhost:3000/admin/people?utf8=%E2%9C%93&q%5Bcategory_id_in%5D%5B%5D= 1 &安培;提交=过滤与秩序= id_desc

但它应该是http://localhost:3000/admin/people?utf8=%E2%9C%93&q%5Bcategory_id_in%5D%5B%5D= [此处的类别名称] & commit =过滤器& order = id_desc

在admin / person.rb

filter :category_id, as: :select, collection: proc { Category.all.map }

这里有一个related answer我试图在这里申请失败,但是没有成功。非常感谢任何帮助,谢谢

1 个答案:

答案 0 :(得分:1)

如果您不想按Person属性过滤category个对象,请执行以下操作:

filter :category, as: :select, collection: -> { Person.pluck(:category).uniq }

Person.pluck(:category).uniq将返回uniq类别列表以供选择。


如果#pluck不起作用,请使用:Person.all.map(&:category).uniq