如何在Active Admin中的文章模型中添加过滤器,该过滤器将显示所有可用标记(或简单输入字符串)的复选框,并充当acts_as_taggable_on可用的tagged_with(tags)
方法?
我之前看过这个:
filter :taggings_tag_name, :as => :check_boxes, :collection => proc { Article.tag_counts.map { |t| t.name} }
但是它使用IN查询,就像tagged_with(tags, :any => true)
方法一样,不我想要的。
答案 0 :(得分:2)
您可能想要做的是创建自定义搜索方法并从过滤器中使用它。
ActiveAdmin使用meta_search,因此您可以创建范围来优化搜索并使用其search_methods方法。
以下是解决方案的提案:
class Article
scope :custom_tags_equals, ->( tags ) do
tagged_with tags
end
search_methods :custom_tags_equals
end
ActiveAdmin.register Article do
# ...
filter :custom_tags_equals, :as => :select,
:collection => proc { Article.tag_counts.map{ | tag | tag.name } },
:input_html => { :multiple => true }
# ...
end