2016-05-18 46 views
1

私は与えられた賞でキャンペーンを作成する必要があります。私のモデルはすでに関連しており、ネストされた属性を受け入れています。Rails - 複雑なパラメータを持つ入れ子になったフォーム

ビュー:

 <%= 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 %> 

生成します。私はこの

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 

どんなに私は何をすべきか、私はいつもこのエラーを取得していない私のコントローラで

<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"> 

Unpermitted parameters: name 

各キャンペーンにさまざまな賞品を付ける必要がありますが、私はこの作業を行うことができません。私は間違って何をしていますか?

ありがとうございました。

答えて

0

campaign_params方法は次のようになります。

def campaign_params 
     params.require(:campaign).permit(:name, 
                     :date_start, 
                     :date_end, 
                     :status, 
                     :rules, 
                     prizes_attributes: [ :name ]) 
end 

How permit nested attributes

+0

私は賞品が配列だったので、それを指定するのは必然的だと思いました。大きな間違い、ありがとう! –

0

あなたcampaign_paramsが間違っている

prizes_attributes: [name: []]

でなければなりません

prizes_attributes: [:name]

+0

答えをありがとう! –

関連する問題