Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Methods 如何在Active Admin中为方法(而不是字段)编写筛选器?_Methods_Filter_Customization_Filtering_Activeadmin - Fatal编程技术网

Methods 如何在Active Admin中为方法(而不是字段)编写筛选器?

Methods 如何在Active Admin中为方法(而不是字段)编写筛选器?,methods,filter,customization,filtering,activeadmin,Methods,Filter,Customization,Filtering,Activeadmin,我有一些资源的活动管理索引页 ActiveAdmin.register Request do index do column :created_at column :content column "Approved", :approved? default_actions end filter :created_at filter :content filter :approved? end 问题是它没有为approved?请求生成筛选器(

我有一些资源的活动管理索引页

ActiveAdmin.register Request do
  index do
    column :created_at
    column :content
    column "Approved", :approved?
    default_actions
  end

  filter :created_at
  filter :content
  filter :approved?
end

问题是它没有为
approved?
请求生成筛选器(但它正确地生成了列)。我认为这是因为
approved
是一种方法,如果
approved\u at
不是
nil
则返回true。在这种情况下,如何编写筛选器?

尝试使用作用域创建筛选器按钮:

# model/request.rb
scope :approved, where("approved_at IS NOT NULL")

# or...if you have other default values on approved_at column you can try this
scope :approved, where("approved IS NOT", nil)
scope :approved, where("approved IS NOT ?", "")

#app/admin/requests.rb
scope :approved

有关活动管理中作用域的更多信息:

def已批准?如果已批准,则返回true else false end end
我添加了一个按钮,通过在“已批准”列上的作用域对“已批准”进行筛选。请尝试:)