Ich muss eine Kampagne mit gegebenen Preisen erstellen. Meine Modelle sind bereits miteinander verknüpft und akzeptieren verschachtelte Attribute.Schienen - verschachtelte Form mit komplexen Parametern
Ausblick:
<%= form_for @campaign, remote: true do |f| %>
<% 5.times do |i| %>
<%= f.fields_for :prizes do |prize_form| %>
<div class="form-group">
<%= prize_form.label "prize #{i + 1}" %>
<%= prize_form.text_field :name %>
</div>
<% end %>
<% end %>
<% end %>
Welche erzeugt:
<input id="campaign_prizes_attributes_0_name" name="campaign[prizes_attributes][0][name]" type="text">
<input id="campaign_prizes_attributes_1_name" name="campaign[prizes_attributes][1][name]" type="text">
<input id="campaign_prizes_attributes_2_name" name="campaign[prizes_attributes][2][name]" type="text">
<input id="campaign_prizes_attributes_3_name" name="campaign[prizes_attributes][3][name]" type="text">
<input id="campaign_prizes_attributes_4_name" name="campaign[prizes_attributes][4][name]" type="text">
In meinem Controller Ich habe diese
class CampaignsController < ApplicationController
respond_to :html, :js
def index
@campaigns = Campaign.all
end
def new
@campaign = Campaign.new
@campaign.prizes.build
end
def create
@campaign = Campaign.new(campaign_params)
@campaign.prizes.build
end
def campaign_params
params.require(:campaign).permit(:name, :date_start, :date_end, :status, :rules, prizes_attributes: [name: []])
end
end
Egal, was ich tue, habe ich immer diese Fehlermeldung:
Unpermitted parameters: name
Ich muss jede Kampagne eine unterschiedliche Menge an Preisen haben, aber ich kann das nicht machen. Was mache ich falsch?
Danke.
Ich dachte, weil die Preise ein Array sind, wäre es notwendig, es zu spezifizieren. Großer Fehler, danke! –