grouped_collection_select, проблема пользовательской регистрации Devise и Rails 5.0 - PullRequest
0 голосов
/ 26 июня 2018

У меня возникли некоторые проблемы с пользовательской регистрацией Devise в Rails 5. У меня есть 3 модели со следующими ассоциациями AR

  • Пользователь (Devise)

    • принадлежит_: глава
  • Глава

    • принадлежит_ к стране: 1016 *
    • has_many: пользователи
  • Страна

    • has_many: главы

Я создал начальный файл для Chapter и Country, и он работает отлично, с их ассоциациями, работающими отлично. Однако я хочу создать вложенный выпадающий список на странице регистрации, сгенерированной Devise, чтобы выбрать главу из страны, к которой они будут принадлежать (и, прежде чем кто-нибудь спросит, это не культовая вещь, это для социальной инициативный проект: П). Я могу добавить настраиваемое поле для имени пользователя, поэтому я знаю, что мои config/initializers/devise.rb и app/controllers/application_controller.rb настроены правильно.

Это мой grouped_collection_select:

<%= grouped_collection_select(resource, :chapter_id, Country.all, :chapters, :name, :id, :city) %>

, который - причудливо - производит тег select следующим образом:

<select name="#<User:0x007fb7686ba478>[chapter_id]" id="__User:0x007fb7686ba478_chapter_id" ></select

Имя все перепутано, и это причина, по которой он не выбирает имя при отправке формы, выдавая ошибку «Глава должна существовать». Я был на SO и Google весь этот чертов день, пытаясь понять, почему и не зашел слишком далеко. Он отлично работает, когда я

<%= f.select :chapter_id, Chapter.pluck(:city, :id) %>

который создает ...

<select name="user[chapter_id]" id="user_chapter_id" ></select

но я хочу вложенный выпадающий список.

Любая помощь приветствуется!

1 Ответ

0 голосов
/ 28 июня 2018

Может быть, вы попробуете сделать это так:

grouped_collection_select(:user, :chapter_id, @countries, :chapters, :name, :id, :city)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...