【问题标题】:Set ActiveAdmin filter default value设置 ActiveAdmin 过滤器默认值
【发布时间】:2014-06-20 20:37:02
【问题描述】:

我在 ActiveAdmin 中有一个用于布尔值的简单过滤器。看起来是这样的

filter :invisible, as: :select

您可以选择“any”、“true”或“false”,它工作得很好。但是过滤器的默认值为“any”,而我需要将其设置为“true”。我该怎么做?谢谢。

【问题讨论】:

    标签: ruby-on-rails activeadmin


    【解决方案1】:

    试试这样的:

    filter : invisible, as: :select, collection: [["Yes", true], ["No", false]]
    

    这对我来说很好。

    显然您可以根据需要编辑"Yes" - "No" 字符串。

    【讨论】:

      【解决方案2】:

      我找到了答案。你必须使用before_filter 所以它很简单

      controller do
        before_filter invisible: :index do
          params[:q] = {invisible_eq: true} if params[:commit].blank?
        end
      end
      

      【讨论】:

      • 像这样的 redirect_to action: :index, q: { invisible_eq: true}, commit: "Filter" params[:commit].blank 怎么样?这样 url refelcts 你的过滤器
      • 你打错字了,应该是before_filter only: :index do
      【解决方案3】:

      另一种方法是复制您想要的默认搜索,例如 active = true,然后使用该链接。例如,而不是显示所有用户并在代码中更改默认值:

      /people/users
      

      改用这个:

      /people/users?qx%5Bactive%5D%5Bop%5D=null&qx%5Bactive%5D%5Bvalues%5D=true
      

      【讨论】:

        猜你喜欢
        • 2012-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-05
        • 2017-11-19
        • 2018-07-18
        • 1970-01-01
        相关资源
        最近更新 更多