0

関連するコードの全範囲はここにあります。

私の問題は、Railscast 196から何かを再構築して、フォームに複数のネストされたフォームを取得しようとしていることですCampaignCampaignを介して、すべてに 1 つ以上のチームを関連付けることができますCampaignTeam。また、Campaignはクライアントに依存しており、それがなければ存在できません。

# config/routes.rb
resources :clients do
  resources :campaigns
end

さて、上記のコード (この質問を混乱させたくありませんでした) を使用すると、エラーが発生します: Can't mass-assign protected attributes: campaign_team. 追加するattr_accessible :campaign_teamと、 が得られunknown attribute: campaign_teamます。

CampaignTeamRails が最終的にこのフォームを食べて、Array を1 つのメンバーでネストするようにするにはどうすればよいですか? ここでどこが間違っていますか?

(申し訳ありませんが、この単一のフォームに 3 時間もかかっており、非常にイライラしています)

4

2 に答える 2

0

既存のチームを追加するだけの場合は、collection_selectを使用して、追加することができます

attr_accessible :teams_ids

一方、チームを作成する必要がある場合は、

accept_nested_attributes_for :teams

(これはすべて、クラスで設定has_many :teams, :through => :campaign_teamsしたものによって異なります)Campaign

于 2012-10-01T12:05:51.493 に答える
0

私は問題を解決しました。コントローラーでは、コントローラーを変更しました

def new
  @client = Client.find params[:client_id]
  @campaign = @client.campaigns.build
  @campaign.campaign_teams.build          # New line
end

new.html.haml15行目を次のように変更しました

=f.fields_for :campaign_teams do |b|

それはうまくいきません。

于 2012-10-01T18:06:29.403 に答える