如何在ActiveAdmin中的自定义筛选器中搜索子字符串?

时间:2014-11-11 17:03:18

标签: ruby-on-rails filter activeadmin ransack

过去:

模型User有一个字符串first_name。如果我在ActiveAdmin模型中编写filter :first_name,它会在输入字段旁边显示一个下拉列表,其中包含选项ContainsEqualsStarts withEnds with。因此,如果我选择Contains并撰写ik,我会发现,例如迈克。

现在:

如果我使用自定义过滤器,我只会获得一个大输入,跨越两列,只进行精确搜索。我这样定义我的过滤器:

  1. 在模型中创建范围。
  2. 使用ransackable_scopes将其列入白名单。
  3. 将其添加到管理模型中,如下所示:filter :my_filter, as: :string
  4. 如何获得搜索子字符串的功能?

1 个答案:

答案 0 :(得分:0)

要搜索子字符串,您必须使用Ransack Search Predicate Syntax,即如果要搜索字段first_name上的子字符串,则必须按以下方式配置:

filter :first_name_cont, as: :string, label: "Name"

您可以找到更多信息here

我希望它有所帮助。