2014-01-20 3 views
0

Я работаю над приложением 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.

Как это сделать?

ответ

0

В Active Admin нет ничего подобного, хотя есть is a ticket for it.

Вы можете просто реализовать это самостоятельно. Что-то вроде:

select1 = fieldset.find 'select:first' # Companies 
select2 = fieldset.find 'select:last' # Users 
select1.change -> 
    $.get '/admin/users.json', q: {company_id_eq: $(@).val()}, (data)-> 
    select2.html data.map (u)-> "<option value='#{u.id}'>#{u.name}</option>" 
1

У меня есть одна и та же функциональность для одного из моих проектов. Я загрузил его к следующему GitHub репо:

https://github.com/abhidsm/dependent-select

Надеется, что вы ищете же :)

Смежные вопросы