Я пытаюсь создать несколько элементов (каждый со значением имени и значением содержимого) в одной форме.Код, который у меня есть, работает, но я не могу понять, как игнорировать пустые элементы.Вот код:
#item.rb
class Item < ActiveRecord::Base
attr_accessible :name, :content
validates_presence_of :name, :content
end
#items_controller.rb
class ItemsController < ApplicationController
def new
@items = Array.new(3){ Item.new }
end
def create
@items = params[:items].values.collect{|item|Item.new(item)}
if @items.each(&:save!)
flash[:notice] = "Successfully created item."
redirect_to root_url
else
render :action => 'new'
end
end
#new.html.erb
<% form_tag :action => 'create' do %>
<%@items.each_with_index do |item, index| %>
<% fields_for "items[#{index}]", item do |f| %>
<p>
Name: <%= f.text_field :name %>
Content: <%= f.text_field :content %>
</p>
<% end %>
<% end %>
<%= submit_tag %>
<% end %>
Этот код работает, когда все поля для всех элементов заполнены в форме, но не работает, если какие-либо поля остаются пустыми (из-за проверок).Цель состоит в том, чтобы 1 или 2 элемента могли быть сохранены, даже если другие оставлены пустыми.
Я уверен, что есть простое решение, но я часами возился безрезультатно.Любая помощь приветствуется!