ActiveAdmin создает собственный фильтр на основе геттера

У меня есть страница ActiveAdmin с фильтрами. Я хотел бы установить собственный фильтр на основе геттера (метод, определенный для ресурса, а не атрибут ActiveRecord).

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>

person sequielo    schedule 29.11.2013    source источник


Ответы (2)


вы могли бы использовать прицелы

модели/house.rb

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

админ/house.rb

ActiveAdmin.register House do
  scope :is_enchanted?
end
person dr. Neox    schedule 07.05.2014

Вы можете создавать собственные методы поиска Ransack, называемые «вымогателями». Для него нет официальной документации, поэтому вам нужно будет поискать в системе отслеживания проблем Ransack на GitHub обсуждения, подобные этому: https://github.com/activerecord-hackery/ransack/issues/36

person seanlinsley    schedule 30.11.2013