やりたいこと
params内のデータの値をネストしたモデルへ送って保存したい
教えてほしいこと
form_withでindex.html.erbからcreateアクションに送ったデータの値を保存したいのですが、
params内で保存されている内、ネストしたモデル(Content)の分だけ取得できずnillになってしまいます。
(Contentにidとnameを保存したい)
ソースコード
models
1[Location] 2 has_many :contents 3 accepts_nested_attributes_for :contents 4[Content] 5 belongs_to :location
controller
1[locations] 2 3def create 4 if params[:location] 5 @location = Location.new(location_params) 6 @location.contents.build 7 binding.pry 8(以下略) 9 10def location_params 11 params.require(:location).permit(:adress, :longitude, :latitude, contents_attributes:[:id,:name]) 12 end 13
binding.pryの結果 ※仮データとして:nameの値に"aaa"といれています。
[1] pry(#<PlaceTalksController>)> @location.contents.build => #<Content:0x000055a432ba9588 id: nil, name: nil, [2] pry(#<PlaceTalksController>)> @location.contents => [#<Content:0x000055a431f66d20 id: nil, name: "aaa", [3] pry(#<PlaceTalksController>)> @location => #<Location:0x00007f3b8e7ecf18 id: nil, adress: "東京都港区六本木3丁目14", latitude: 0.35663053e2, longitude: 0.139734819e3, name: nil>
上記をみるに、@location.contentsには入ってるのですが保存されていないようで、
Content.allで確認してもありませんんでした。
また、Locationモデルに送りたい分のデータの値は取得できています。
何か初歩的なことを間違えているのだと思うのですが見つけられず・・・、
ご助力いただければ幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。