首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在ActiveAdmin中实现Ruby on Rails自定义资源检索

,你可以通过自定义筛选器来实现。

首先,在ActiveAdmin的资源管理器中创建一个新的过滤器。过滤器是用于自定义资源检索的工具。你可以在ActiveAdmin的资源管理器类中使用filter方法来创建一个新的过滤器。例如,如果你有一个名为Post的资源,你可以在app/admin/posts.rb文件中添加以下代码:

代码语言:txt
复制
ActiveAdmin.register Post do
  filter :custom_search, label: 'Custom Search', as: :string
end

上述代码中,filter方法创建了一个名为custom_search的过滤器,并且将其显示为一个字符串输入框,标签为"Custom Search"。你可以根据需要选择不同的过滤器类型,如字符串、日期、下拉框等。

然后,你需要在资源管理器类中重写scoped_collection方法,使用自定义过滤器进行资源检索。例如,假设你想使用custom_search过滤器来检索Post资源中标题包含指定关键词的记录,你可以按照以下方式重写scoped_collection方法:

代码语言:txt
复制
ActiveAdmin.register Post do
  filter :custom_search, label: 'Custom Search', as: :string

  controller do
    def scoped_collection
      if params[:q] && params[:q][:custom_search_cont].present?
        Post.where('title LIKE ?', "%#{params[:q][:custom_search_cont]}%")
      else
        super
      end
    end
  end
end

上述代码中,scoped_collection方法根据custom_search过滤器的值来构建查询条件,使用title LIKE ?进行模糊匹配筛选。如果过滤器的值存在且非空,则返回匹配的记录;否则,返回默认的资源集合。

最后,你可以在ActiveAdmin的资源管理界面中使用自定义过滤器进行资源检索。在资源列表顶部,你会看到一个标签为"Custom Search"的输入框,你可以在其中输入关键词,并点击"Filter"按钮进行检索。系统将根据输入的关键词,筛选并显示匹配的资源记录。

关于ActiveAdmin的更多信息和使用方法,你可以参考腾讯云的ActiveAdmin产品介绍:ActiveAdmin产品介绍

请注意,以上答案仅供参考,具体实现方式可能因你的具体需求和环境而有所不同。建议你查阅ActiveAdmin的官方文档和其他相关资源,以获取更详细和准确的信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券