администратор рельсов принадлежит выпадающему списку

Я управляю своей базой данных со страницы администратора и хотел бы назначить группу для показателей из раскрывающегося списка.

Итак, что имею на данный момент:

индикаторная таблица:

id       | int(11)      | PRIMARY 
name     | varchar(255) |
group_id | int(11)      |

групповая таблица:

id       | int(11)      | PRIMARY 
name     | varchar(255) |

indic.rb:

belongs_to :group

rails_admin do 
  list do 
    field :id
    field :name
    field :group_id
  end
  edit do
    field :name
    field :group_id
  end
end

group.rb:

has_many :indic

rails_admin do 
  list do 
    field :id
    field :name
  end
  edit do
    field :name
  end
end

При этом нет раскрывающегося списка (я имею в виду выбор группы из списка с каждой группой из базы данных), и я даже не уверен, что они связаны, потому что я могу поместить group_id, который не существует в таблице групп.

В другом ответе я нашел, что мне нужно изменить поле редактирования на field :group_id, :belongs_to_association, но если я это сделаю, я получаю сообщение об ошибке при загрузке страницы:

Отображение /home/ma/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/rails_admin-0.6.5/app/views/rails_admin/main/edit.html.haml, где строка № 2 поднятый:

неопределенный метод `klass' для #‹ RailsAdmin::Adapters::ActiveRecord::Property:0x007fd3f99d1e38 >

= rails_admin_form_for @object, url: edit_path(@abstract_model, @object.id), as: @abstract_model.param_key, html: {метод: "put", составной: true, класс: "форма-горизонтальная плотнее", данные: { title: @page_name } } сделать |form|

= действие form.generate: :update

Кто-нибудь знает, как исправить эту проблему? Также для выпадающего списка было бы неплохо, если бы список идентификаторов, но идеальным решением (я не знаю, возможно ли это) было бы перечисление имен для этих group.id.


person Luckyn    schedule 04.08.2015    source источник


Ответы (1)


Я наконец нашел решение, которое действительно глупо, ссылка не была сделана, потому что какая-то ошибка о "s" в конце ключевых слов, и редактирование должно быть сделано в таблице, а не в столбце id

вот правильное решение:

indicator.rb:

belongs_to :group   # no "s" for belongs_to

rails_admin
  ...      
    edit
      field :group  # table name, not the name of the reference column !
  ...

indic.rb:

has_many :indics   # need "s" for has_many

С этим все работает как положено, и список по умолчанию с названием, так что мой бонус тоже готов :)

person Luckyn    schedule 04.08.2015