【问题标题】:How can I use the tagged_with query in acts_as_taggable_on as a filter in Active Admin?如何使用acts_as_taggable_on 中的tagged_with 查询作为Active Admin 中的过滤器?
【发布时间】:2015-03-12 08:05:42
【问题描述】:

如何在 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) 方法,这不是我想要的。

【问题讨论】:

    标签: ruby-on-rails ruby activeadmin acts-as-taggable-on


    【解决方案1】:

    您可能想要做的是创建一个自定义搜索方法并从过滤器中使用它。

    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
    

    【讨论】:

    • 用ransacker怎么办?
    猜你喜欢
    • 2012-05-16
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2016-07-28
    • 1970-01-01
    相关资源
    最近更新 更多