grouped_collection_select,Devise and Rails 5.0自定义注册问题

时间:2018-06-26 19:26:34

标签: ruby ruby-on-rails-3 devise html-select grouped-collection-select

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

  • 用户(Devise)

    • 属于:章节
    • 属于:国家/地区
    • has_many:users
  • 国家/地区

    • has_many:章节

我为Chapter and Country创建了一个种子文件,并且工作正常,并且它们的关联运行良好。但是,我想做的是在由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

但是我想要一个嵌套的下拉列表。

我们竭诚欢迎您的光临!

1 个答案:

答案 0 :(得分:0)

也许您会尝试这样做:

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