Как использовать поля HABTM в разделе фильтра Active Admin? - PullRequest
3 голосов
/ 15 октября 2011

Я использую Active Admin 0.3.2, и моя схема базы данных включает несколько отношений has_and_belongs_to_many. Я могу очень хорошо создавать и отображать записи, но попытка включить их в раздел filter приводит к остановке.

Модели \ pin.rb:

class Pin < ActiveRecord::Base
    has_and_belongs_to_many :pin_types, :join_table => :pin_types_pins
end

Модель \ pin_type.rb

class PinType < ActiveRecord::Base
    has_and_belongs_to_many :pins, :join_table => :pin_types_pins
end

админ \ pins.rb

ActiveAdmin.register Pin do
    filter :pin_types
    ...other filters
end

В результате появляются другие фильтры, но для типов выводов секций нет вообще.

Если это вместо admin \ pins.rb:

ActiveAdmin.register Pin do
    filter :pin_types, :as => :check_boxes
    ...other filters
end

Я получаю следующее:

undefined method `pin_type_ids_in' for #<MetaSearch::Searches::Pin:0xcd2c108>

Что я хотел бы сделать, это позволить пользователю выбрать один или несколько типов выводов из набора возможных вариантов и отфильтровать их в зависимости от того, применяется ли какой-либо из выбранных параметров.

Возможно ли это?

Ответы [ 2 ]

3 голосов
/ 21 октября 2011

используйте фильтр следующим образом: фильтр: model_attribute , так что если вы находитесь на User_events и хотите найти по имени пользователя, вы бы сделали это фильтр: имя_пользователя

0 голосов
/ 12 февраля 2013

Обратите внимание, что ответ ccarlson работает, но только с :check_boxes.

Это прискорбно, поскольку стандартное поведение meta_search (используется для включения поиска фильтра) не отфильтровывает дубликаты ... и когдавы используете чекбоксы, вы, вероятно, не хотите, чтобы результат появлялся дважды, поскольку он соответствует 2 выбранным параметрам.

Я столкнулся с неопределенной ошибкой метода при попытке использовать as: :select, но имелкусать пули на флажках.

...