Форма ActiveAdmin для вложенного поля jsonb

#ruby-on-rails #ruby #activeadmin #jsonb

Вопрос:

Я создаю новую/редактирую форму для модели ActiveRecord в ActiveAdmin. Одним из атрибутов этой модели является атрибут jsonb. Ожидается, что его значение будет хэшем, значения которого сами по себе являются хэшами:

 {
  'foo' => {
    'a' => 1,
    'b' => 2
  },
  'bar' => {
    'c' => 3,
    'd' => 4
  }
}
 

MVP, к которому я стремлюсь, состоит в том, чтобы создать форму, которая выглядит следующим образом:

Фу

a __________________

b __________________

Бар

c __________________

d __________________

Поэтому, по сути, я хочу только попросить пользователя ввести значения для каждого из внутренних хэшей. У меня возникли некоторые проблемы с этим с ActiveAdmin. Это моя лучшая попытка отобразить приведенную выше форму, но она отображает только раздел «Панель». :jsonb_field — это имя атрибута jsonb в модели.

       f.inputs name: 'JSONB', for: :jsonb_field do |jsb|
        jsb.inputs name: 'Foo', for: 'foo' do |x|
          x.input :a
          x.input :b
        end
        jsb.inputs name: 'Bar', for: 'bar' do |y|
          y.input :c
          y.input :d
        end
      end

 

Я чувствую, что есть правильный способ сделать это, но мои исследования оказались пустыми. Кто-нибудь может помочь мне понять, как это сделать? Спасибо!

Комментарии:

1. Вместо этого мы превратили поле jsonb в новый объект AR для лучшей совместимости с формами AA. Я оставлю этот вопрос открытым на случай, если это поможет кому-то еще.