Rails 3, пользовательский фильтр ActiveAdmin

У меня есть 3 связанные модели:

class Brand < ActiveRecord::Base
  has_many :car_models
end

class CarModel < ActiveRecord::Base
  has_many :production_years
  belongs_to :brand
end

class ProductionYear < ActiveRecord::Base
  belongs_to :car_model
end

Итак, как я могу сделать собственный фильтр в ActiveAdmin разделе production_year, если я хочу сделать фильтрацию по бренду? Фильтры по умолчанию: выбор модели автомобиля и значение года.


person BazZy    schedule 18.10.2011    source источник


Ответы (1)


Вы пробовали что-то подобное?

ActiveAdmin.register ProductionYear do
  filter :brand, :as => :check_boxes, :collection => proc { Brand.all }
end

РЕДАКТИРОВАТЬ, к сожалению, я не заметил сложности вашей ассоциации, я думаю, что если вы добавите это в свой класс ProductionYear, все должно работать лучше:

class ProductionYear < ActiveRecord::Base
   belongs_to :car_model
   has_one :brand, :through => :car_model
end
person Matthew    schedule 18.10.2011
comment
Да, это вызывает ошибку Undefined methon 'brand_eq' для #‹MetaSearch::Searchs::ProductionYear:...› - person BazZy; 18.10.2011
comment
Ааа, проблема в ассоциациях моделей, я добавил свой ответ, чтобы отразить это - person Matthew; 18.10.2011
comment
Большое спасибо, теперь это действительно работает! Но, может быть, вы можете помочь рядом. Если я добавлю еще одну дочернюю модель для ProductionYear, как сделать двойную «сквозную» ассоциацию? - person BazZy; 18.10.2011
comment
Получил раскрывающийся список со значениями, но когда я фильтрую это, я получаю пустой список - person eshaiju; 13.01.2014