在 Active_admin 中设置下拉选择

Setting up drop down selection in Active_admin

我设置了 Active_admin,其中有一个字段 Is_test(布尔值),但我希望它在启动时只显示 is_test 的错误记录。以下是我的 active_admin table 文件中的代码,它工作正常,但是当我点击分页时它给我错误。

controller do
      before_action is_test: :index do
        if params[:format] != 'csv'
          params[:q] = {is_test_eq: false} if params[:commit].blank?
        end
      end
end

如果我从上面的代码中删除 is_test: 它会起作用,但是 selected 是真的。我只是想确定它应该 select false is_test 下拉。

我添加了以下内容以在过滤器部分显示为下拉列表

 filter :is_test, label: "Test orders"

我不确定你到底想达到什么目的,但我会这样做:

  • 请勿修改您的控制器
  • 并像这样添加默认范围:
ActiveAdmin.register YourResource do
  scope("Non-test") { |scope| scope.where(is_test: false) }, default: true # assuming there is no scope in model class
  scope :all # In case you want to see all cases
end

这个解决方案不会给你一个下拉菜单,而是一个可点击的按钮,你可以在其中从非测试中过滤掉测试....顺便说一下,这是你的索引页面。

在尝试了许多不同的解决方案和教程之后,我发现没有直接的方法,但我使用 url 并使用参数来获得结果。

以下是允许我显示适当结果的代码。

        if params[:order].blank?
          params[:q] = {is_test_eq: false} if params[:commit].blank?
        end

首先我检查页码是否为空 params[:page] 但是当我按下 <<First 按钮时它给了我不正确的结果,然后我终于 select 这个 params[:order].blank? ,而且我还使用了 commit,所以没有应用过滤器。这让我通过了 QA。全部完成。