Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails使用多个表形成表单_Ruby On Rails_Database_Forms_Drop Down Menu_Form For - Fatal编程技术网

Ruby on rails rails使用多个表形成表单

Ruby on rails rails使用多个表形成表单,ruby-on-rails,database,forms,drop-down-menu,form-for,Ruby On Rails,Database,Forms,Drop Down Menu,Form For,我正在尝试创建一个更新表的表单。我想有一个下拉按钮,从一个名为manufacturer的表中提取信息,一旦表单提交,将数据存储在reviews表中 这是我的表格: <%= form_for(@review) do |f| %> <%= render 'shared/error_messages', object: f.object %> <div class="field" align= "center"> <h3>Select b

我正在尝试创建一个更新表的表单。我想有一个下拉按钮,从一个名为manufacturer的表中提取信息,一旦表单提交,将数据存储在reviews表中

这是我的表格:

<%= form_for(@review) do |f| %>
  <%= render 'shared/error_messages', object: f.object %>
  <div class="field" align= "center">
    <h3>Select bat</h3>
    <%= f.collection_select :bat_id, Manufacturer, include_blank: true %>
    <h3>What do you like about this bat?</h3>
    <%= f.text_area :pros, placeholder: "Enter what you like..." %>
    <h3>What do you not like about this bat?</h3>
    <%= f.text_area :cons, placeholder: "Enter what you don't like..." %></br>
  </div>
  <div align="center">
  <%= f.submit "Add Review", class: "btn btn-large btn-info" %>
  </div>
<% end %>
当你看到这一行时,我相信:bat_id告诉表单从用户那里发送输入。在这种情况下,请在查看表中输入:bat_id参数

我如何告诉表单从制造商表中选择下拉选项

更新:
是否需要在控制器中添加任何内容?

查看文档

因此,在你的情况下:

<%= f.collection_select :bat_id, Manufacturer.all, :id, :name, include_blank: true %>

鉴于制造商模型有一个名称字段,否则您需要调整

您可以尝试提供关联选择输入的简单表单gem。我尝试了上述方法,但它读取了制造商的NoMethodError和未定义的方法“map”。全部,不仅仅是制造商。谢谢,我让它工作了,我通过切换:name和:id来改变你的答案,在下拉列表中显示:name的值,而不是下拉列表中的id号。
<%= f.collection_select :bat_id, Manufacturer.all, :id, :name, include_blank: true %>