Я работаю над приложением rails, которое я создаю Active Admin для управления данными. У меня есть следующие модели для автосалона:Active Admin: Вложенный «select» вход на основе другого select
class Make < ActiveRecord::Base
has_many :models
end
class Model < ActiveRecord::Base
belongs_to :make
has_many :cars
end
class Car < ActiveRecord::Base
belongs_to :model
def make
self.model.make
end
end
Я пытаюсь настроить форму в ActiveAdmin модель «Автомобиль», так что вместо того, чтобы выбрать модель из большого списка доступных моделей, я должны быть в состоянии сузить модель, выбрав «make», а затем выбрав модель, основанную на этом.
В настоящее время, у меня есть это:
ActiveAdmin.register Car do
controller do
def permitted_params
params.permit!
end
end
form :html => { :multipart => true } do |f|
f.inputs "Project Details" do |c|
f.input :vin
f.input :year
end
f.inputs "Make and model" do
f.input :maker, :as => :select, :collection => Make.all, :include_blank => false
f.input :model, :as => :select, :collection => Model.where(make_id: 1), :include_blank => false, :selected => (car.model.id if !car.model.nil?)
end
end
end
Это прекрасно работает, и модель, перечисленная в списке «Модели» являются те, которые имеют make_id = 1, так как я закодирован. Я хотел бы, чтобы модели отражали выбранный «создатель». и, вероятно, кнопку, которая обновляет список моделей на основе make.
Как это сделать?