我正在努力创建一个动态下拉框排列。感谢StackExchange Ruby社区,我能够创建第一个下拉框。我想做的是让用户选择一组处于特定状态的银行,但不断从我的f.grouped_collection_select表单中获取以下错误消息:“MD”的未定义方法`map':String。我查看了ActionView::Helpers::Forms和video,但似乎没有任何效果。您将提供的任何帮助将不胜感激。我想我也必须添加jquery代码?这是我目前的观看代码:
<%= form_for @boli do |f| %>
<%= f.label :state %>
<%= f.collection_select :state, (Boli.order(:state).select("DISTINCT ON (state) id, state")), :id, :state, include_blank: true %>
<div>
<%= f.label :bank %>
<%= f.grouped_collection_select :bank, Boli.order(:bank), :state, :name, :id, :name, include_blank: true %>
</div>
<% end %>
答案 0 :(得分:0)
您需要按州分组银行。这意味着存在一对多(一个州到多个银行)或它们之间的多对多关系。
一对多关系意味着Bank
是一个模型,其中state
作为属性或引用另一个模型State
。
多对多关系意味着Bank
和State
都是由另一个表加入的模型。
将bank
和state
作为另一个模型的属性,对它们之间的关系进行建模是不可行的。
为了使用grouped_collection_select
,您应该同时使用两种模型。