2012-03-15 8 views
2

私はモデルpage.rbを持っており、モデルcomment.rbとコメントbelongs_toページを持っています。 また、gem active adminを使用しています。インデックスページで私は、「フィルタ」によって作ら検索フォームを持って、私はアクティブな管理フィルタ

filter :country 
    filter :city 
    filter :category 
    filter :description_type 
    filter :title 
    filter :sight_of_the_day, :as => :select 
    filter :active, :as => :select 
    filter :show_in_top, :as => :select 
    filter :created_at 
    filter :updated_at 

を持って、それが正常に動作しますが、私は、1以上のフィルタを持っていると思います。私は "comments"という名前のチェックボックスを作って、チェックされていればコメントのあるページだけを探したいと思う。どのように私はアクティブな管理者でこれを行うことができますか?前もって感謝します!

filter :has_comments, :as => :select 

これは「任意」、「はい」、「いいえ」をオプションで選択が生成されます。

答えて

10

たぶん、あなたはこのような何かをしたいです。また、あなたはメソッド "has_comments_eq" を検索し必要があります。

scope :has_comments_eq, lambda { |has| has == "true" ? with_comments : without_comments } 
search_method :has_comments_eq 

search_method doc

+0

非常に非常に素晴らしいです! – RubyFanatic

+3

最新のActiveAdminでは、MetaSearchがRansackに置き換えられましたので、 'search_method'の代わりに' ransacker'を使う必要があります。 [例](https://github.com/ernie/ransack/blob/master/spec/support/schema.rb#L18)です。 – manafire

関連する問題