我在 Rails 5 中的自定义设计注册时遇到了一些问题。我有 3 个具有以下 AR 关联的模型
用户(设计)
- 属于_to:章节
章节
- 归属地:国家
- has_many :用户
国家
- has_many:章节
我为章节和国家创建了一个种子文件,它运行良好,它们的关联运行良好。但是,我想做的是在 Devise 生成的注册页面上创建一个嵌套下拉列表,以从他们所属的国家/地区中选择章节(在有人问之前,这不是邪教,而是为了社交倡议项目:P)。我可以为用户名添加一个自定义字段,所以我知道我的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 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
但我想要一个嵌套的下拉菜单。
任何和所有的帮助都是最受欢迎的!