2014-03-26 22 views
1

我得到了一個後端(名稱空間管理員),並希望創建4個新的數據庫條目,並提交1個表單(4個新的國家/地區)。我得到了什麼至今:Ruby on Rails - 用於多個新對象的表格

在我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錯誤。什麼是正確的方法來做到這一點?

回答

2

form_for爲單一的ActiveRecord對象,但你使用它與對象的陣列:

<%= form_for [:admin, @countries] do |f| %> 

要麼創建的每個對象的形式(與每個形成保存按鈕):

<% @countries.each do |country| %> 
    <%= form_for [:admin, country] do |f| %> 
    ... 
    <% end %> 
<% end %> 

或者看到這個問題的解決方案只使用一種形式:Multiple objects in a Rails form

+1

如何做到這一點,如果我沒有陣列的大小? –