首页 > 解决方案 > grouped_collection_select,Devise 和 Rails 5.0 自定义注册问题

问题描述

我在 Rails 5 中的自定义设计注册时遇到了一些问题。我有 3 个具有以下 AR 关联的模型

我为章节和国家创建了一个种子文件,它运行良好,它们的关联运行良好。但是,我想做的是在 Devise 生成的注册页面上创建一个嵌套下拉列表,以从他们所属的国家/地区中选择章节(在有人问之前,这不是邪教,而是为了社交倡议项目:P)。我可以为用户名添加一个自定义字段,所以我知道我的config/initializers/devise.rbapp/controllers/application_controller.rb是正确配置的。

这是我的grouped_collection_select

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

这 - 奇怪的是 - 产生一个这样的选择标签:

<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

但我想要一个嵌套的下拉菜单。

任何和所有的帮助都是最受欢迎的!

标签: rubyruby-on-rails-3devisehtml-selectgrouped-collection-select

解决方案


也许你会尝试这样做:

grouped_collection_select(:user, :chapter_id, @countries, :chapters, :name, :id, :city)

推荐阅读