なんとなく日々徒然と

fields_forに渡すrelationを絞る

contentモデルの下にcontent _detailモデルがあって、 accepts _nested _attributes _forしていて、fields _forを使う場合。

1
f.fields_for :content_details do |c|

って書くと、contentに紐付く全部のcontent _detailsがformとして表示されちゃう。

第二引数にインスタンスを渡せばいいみたい。

1
f.fields_for :content_details, @content.content_details.where(state = 1) do |c|

ちなみに第二引数はnilがデフォルト引数なので

1
2
f.fields_for :content_details
f.fields_for :content_details, nil

は同じ意味になるので、インスタンス変数は値を入れなければnilなので

1
fields_for :content_details, @details

ってやって、editの時だけ@detailsに値を入れるとうまく変更したいレコードのみ抽出できて、処理を切り分けられる気がします。