grouped_collection_select, проблема пользовательской регистрации в Devise и Rails 5.0
У меня возникли некоторые проблемы с пользовательской регистрацией Devise в Rails 5. У меня есть 3 модели со следующими ассоциациями AR
Пользователь (Devise)
- принадлежат: глава
глава
- принадлежат: страна
- 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 ответ
Может быть, вы попробуете сделать это так:
grouped_collection_select(:user, :chapter_id, @countries, :chapters, :name, :id, :city)