2013年6月4日火曜日

Railsのform_forとパラメータ

form_forを使っている所で、パラメータを渡すのに f.hidden_field を利用した場合、
該当するフィールドがない時に
  WARNING: Can’t mass-assign these protected attributes: id
といったエラーが出ます。

どうやってパラメータを渡せば良いんだろう…?

hidden_fieldではなく、form_forの引数で渡します。


例) project_idを渡したい場合
・新規作成画面へ遷移する時に、コントローラで渡す値を設定
  def new
    ...
    @project_id = xxx
    ...
  end

・new.html.erb の review_record_index_pathのところにパラメータを設定をすると保存ボタン押下時にcreateのところまで渡すことができます。

<%= render(:partial => 'form', :locals => {:path => review_record_index_path(@review_records, :project_id=>@project_id)})  %>


・保存ボタン押下後
  def create
    ...
    puts params[:project_id]
    ...
  end

あまりうまく説明できないけど、こんな感じ…(^^;

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。