2013-09-27 1 views
1

Comment puis-je ajouter un filtre sur mon modèle Article dans Active Admin, qui affichera des cases à cocher pour tous les tags disponibles (ou une simple chaîne de saisie) et agira comme la méthode tagged_with(tags) disponible avec acts_as_taggable_on?Comment utiliser la requête tagged_with dans acts_as_taggable_on comme filtre dans Active Admin?

Je l'ai vu affiché avant:

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

Mais il utilise une requête IN, un peu comme la méthode tagged_with(tags, :any => true), qui est pas ce que je veux.

Répondre

2

Ce que vous pouvez faire est de créer une méthode de recherche personnalisée et l'utiliser à partir du filtre.

ActiveAdmin utilise meta_search, de sorte que vous pouvez créer une étendue pour affiner votre recherche et utiliser sa méthode search_methods.

Voici une proposition de solution:

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

Comment faire avec Saccageur? – Chamnap

Questions connexes