簡體   English   中英

如何在acts_as_taggable_on中將tags_with查詢用作Active Admin中的過濾器?

[英]How can I use the tagged_with query in acts_as_taggable_on as a filter in Active Admin?

如何在Active Admin中的Article模型上添加過濾器,該過濾器將顯示所有可用標簽(或簡單輸入字符串)的復選框,並充當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)方法,這不是我想要的。

您可能想要做的是創建一個自定義搜索方法,然后從過濾器中使用它。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM