为相关数据库创建Rails下拉列表

Dav*_*ave 8 forms activerecord ruby-on-rails relational-database drop-down-menu

我有2个模型,场地和区域(区域由id和name字段组成).它们相关:一个区域有许多场地,每个场地属于一个区域.

要将场地分配到我正在输入area_id编号的区域,请在创建新场地页面的文本字段中输入.然后我可以显示场地所属的区域:

<%= venue.area.name %>
Run Code Online (Sandbox Code Playgroud)

我不想输入表格中区域的ID号,而是希望有一个下拉列表,列出所有区域记录的区域名称,以及在保存时与所选区域相关联的区域名称.

新场地形式:

<% form_for @venue do |f| %>
  <p>name: <br>
  <%= f.text_field :name %></p>

  <p>address line 1: <br>
  <%= f.text_field :addressline1 %></p>

  <p>address line 2: <br>
  <%= f.text_field :addressline2 %></p>

  <p>address line 3: <br>
  <%= f.text_field :addressline3 %></p>

  <p>area_id: <br>
  <%= f.text_field :area_id %></p>

  <%= submit_tag %>
<% end %>
Run Code Online (Sandbox Code Playgroud)

我试过了:

  <p>area_id: <br>
  <%= collection_select(:area, :name, @areas, :id, :name) %>
Run Code Online (Sandbox Code Playgroud)

但得到:

当你没想到它时,你有一个零对象!
您可能期望一个Array实例.
评估nil.map时发生错误

任何帮助深表感谢!

aNo*_*ble 29

看起来似乎@areas没有定义,也许还有其他几个问题.试试这个:

<%= f.collection_select(:area_id, Area.all, :id, :name) %>
Run Code Online (Sandbox Code Playgroud)