我有一个后端(名称空间管理员),并希望创建4个新的数据库条目,其中1个表单提交(4个新国家/地区)。到目前为止我得到了什么:
在我的countries_controller.rb
中class Admin::CountriesController < Admin::AdminController
def new
@countries = Array.new(4) { Country.new }
end
end
在我的new.html.erb中:
<%= form_for [:admin, @countries] do |f| %>
<% @countries.each do |country| %>
<div class="row">
<div class="col-md-6">
<div class="form-group col-md-6">
<%=f.text_field :country, :name, :class => "form-control", :placeholder => "Country 1" %><br>
<%=f.text_field :country, :iso, :class => "form-control", :placeholder => "us" %>
</div></div></div>
<% end %>
<% end %>
但这不起作用,我收到undefined method model_name for Array:Class
错误。这样做的正确方法是什么?
答案 0 :(得分:2)
form_for
用于单个ActiveRecord对象,但您将其与对象Array一起使用:
<%= form_for [:admin, @countries] do |f| %>
为每个对象创建一个表单(每个表单都有一个保存按钮):
<% @countries.each do |country| %>
<%= form_for [:admin, country] do |f| %>
...
<% end %>
<% end %>
或者只使用一种表单查看此问题的解决方案:Multiple objects in a Rails form