Ich habe ein Modell namens UserPrice
und ich möchte den Benutzern die Möglichkeit geben, viele der gleichen Ressourcen in einem Formular zu erstellen, indem sie nur die UserPrice
Modell.
Erfolg
Arbeitscode: (Dieser Code erstellt eine x-fache Anzahl von user_prices, zeigt aber keine Fehlermeldungen an/bestätigt oder lehnt ab, wenn bestimmte Felder leer sind).
class UserPricesController < ApplicationController
def new
@user_prices = Array.new(5) { UserPrice.new }
end
def create_multiple
@user_prices = params[:user_prices].values.collect { |user_price| UserPrice.new(user_price) }
if @user_prices.all?(&:valid?)
@user_prices.each(&:save!)
redirect_to :action => :new, :notice => "Successfully created product."
else
redirect_to :back, :notice => "Error."
end
end
resources :user_prices do
post :create_multiple, :on => :collection
end
<%= form_tag create_multiple_user_prices_path, :method => :post do %>
<% @user_prices.each_with_index do |user_price, index| %>
<%= fields_for "user_prices[#{index}]", user_price do |up| %>
<%= render "add_user_price_fields", :f => up %>
<% end %>
<% end %>
<%= submit_tag "Done" %>
<% end %>