Можно ли сделать глубокую вложенность в активном админке?

Уже третий день захожу на Active Admin.

У меня есть @survey, has_many :questions и каждый вопрос has_many :answers — на самом деле это варианты, из которых пользователи могут выбирать.

Но все равно не могу его запустить, он просто не создает ничего глубже 1 уровня: даже форма работает нормально, но ничего не создается.


person prikha    schedule 22.11.2011    source источник
comment
Вставьте код в свои модели и активную реализацию административного ресурса.   -  person JCorcuera    schedule 22.11.2011
comment
Ознакомьтесь с комментариями в этом выпуске ActiveAdmin. И другие вопросы, содержащие вложенные. github.com/gregbell/active_admin/issues/478 И посмотрите также здесь: stackoverflow.com/questions/8224884/nested-form-in-active -admin   -  person slothbear    schedule 22.11.2011
comment
Привет, Прикха, есть ли решение твоей проблемы? У меня также много вложенных моделей, и я борюсь с ActiveAdmin...   -  person fro_oo    schedule 25.01.2012
comment
Нет ответа, я думаю, нет. Может быть, я попробую пользовательскую форму в частичном...   -  person fro_oo    schedule 31.01.2012


Ответы (1)


У меня есть следующие классы Курс-> Разделы-> Уроки.

Я сделал следующее:

form do |f|
  f.inputs "Details" do
    f.input :instructor, :as => :select 
    f.input :title
    f.input :name
    f.input :price
    f.input :discount
    f.input :slug
    f.inputs "Sections" do
       f.has_many :sections, :header=>"" do |section|
         section.input :name
         section.input :position
         if section.object.id
           section.input :_destroy, :as=>:boolean, :required => false, :label=>'Remove'
         end

         section.has_many :lessons, :header=>"Lessons" do |lesson|
           lesson.input :title
           lesson.input :position
           lesson.input :duration
           lesson.input :_destroy, :as=>:boolean, :required => false, :label=>'Remove'
         end
       end
   end

  end
  f.buttons
end

Мои модели следующие:

class Course < ActiveRecord::Base
    has_many :sections, :dependent => :delete_all 
    accepts_nested_attributes_for :sections, :allow_destroy => true
    attr_accessible :sections_attributes
 ....

class Section < ActiveRecord::Base
    belongs_to :course
    has_many :lessons, :dependent => :delete_all
    attr_accessible :course_id, :name, :position
    accepts_nested_attributes_for :lessons, :allow_destroy => true
    attr_accessible :lessons_attributes
....

class Lesson < ActiveRecord::Base
    belongs_to :section
    attr_accessible :duration, :position, :section_id, :title
....

И это прекрасно работает! Я не знаю, что произойдет, если я пойду на несколько уровней глубже.

person Tony    schedule 11.08.2012
comment
какое-нибудь обновление для рельсов 4? Кажется, теперь в контроллере установлены защищенные атрибуты. Нам нужно использовать permit_params ? - person Defoncesko; 21.04.2015
comment
да, но пользовательский интерфейс выглядит совершенно ненормальным. Кажется, не поддерживает вложенность глубже 2 уровней, но я могу ошибаться. - person Nick Res; 12.12.2017