2013-09-27 24 views
1

如何在Active Admin中爲我的文章模型添加過濾器,該過濾器將顯示所有可用標記(或簡單輸入字符串)的複選框,並充當可用於acts_as_taggable_on的tagged_with(tags)方法?如何在acts_as_taggable_on中將tagged_with查詢用作Active Admin中的過濾器?

我已經看到了在此之前發佈:

filter :taggings_tag_name, :as => :check_boxes, :collection => proc { Article.tag_counts.map { |t| t.name} }

,但它使用IN詢問,很像tagged_with(tags, :any => true)方法,這是我想要的。

回答

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 
+0

如何使用ransacker辦呢? – Chamnap

相關問題