Ruby on rails rails使用多个表形成表单
我正在尝试创建一个更新表的表单。我想有一个下拉按钮,从一个名为manufacturer的表中提取信息,一旦表单提交,将数据存储在reviews表中 这是我的表格: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
<%= 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 %>