1

キャンペーンクラスにメッセージを保存しようとしていますが、テキストフィールドが表示されません。いくつかのバリエーションを試しましたが、うまくいかないようです。fields_forにデバッガーを配置しましたが、コードはそのロジックに到達しません。コードは次のとおりです。

  def new
    @campaign = Campaign.new
    @message = Message.new(:campaign_id => @campaign.id)
  end

  def edit
    @campaign = Campaign.find(params[:id])
    @message = @campaign.message
  end

  %legend
    Enter the campaign information
  .field
    .control-group
      %label.control-label
        Campaign Name
      .controls
        = f.text_field :name

        = f.collection_select(:group_id, current_user.groups.all, :id, :name, :include_blank => true)
        = f.fields_for :message do |m|
          = m.text_area :body, :rows => 3
      .form-actions= f.submit "#{params[:action] == 'new' ? 'Create New Campaign' : 'Save Campaign'}", :class => 'btn btn-success'

text_areaがページに表示されないのはなぜですか?

4

2 に答える 2

0

@campaign.build_message新しいアクションで試すか@campaign.messages.new

于 2012-11-09T07:44:26.970 に答える
0

あなたの解決策のためにこれをして、それを試してください

def new
  @campaign = Campaign.new
  @message = @campaign.build_message
end

モデルファイルに次のように記述します

accepts_nested_attributes_for :message

詳細情報-http://railscasts.com/episodes/196-nested-model-form-part-1

于 2012-11-09T07:57:24.893 に答える