2013-11-29 63 views
3

我有一個帶有過濾器的ActiveAdmin頁面。 我想設置一個基於getter(在資源上定義的方法,而不是ActiveRecord屬性)的自定義過濾器。ActiveAdmin基於getter創建自定義過濾器

class House 
    def is_enchanted? 
    # Ask to witches and ghosts... 
    end 
end 

這是ActiveAdmin資源:

ActiveAdmin.register House do 
    filter :is_enchanted? 
end 

上面的代碼引發以下異常:

undefined method `is_enchanted?_eq' for #<Ransack::Search:0xc188178> 

回答

1

,你可以使用範圍

型號/ house.rb

class House 
    scope :is_enchanted?, 
     #where(....) 
end 

管理/ house.rb

ActiveAdmin.register House do 
    scope :is_enchanted? 
end