#目次
①結論
②データを配列で保存する方法
###①結論
親要素を保存するときに、それに紐づいていてかつ、保存したいデータを配列で指定すると、その情報が中間テーブルに保存されるようになっている。
###②データを配列で保存する方法
親要素が登録される時に、has_many :○ ,through: ■_○で紐付いている○の部分を単数形にし、_idsをくっつけて保存をストロングパラメーターで許可してあげると、中間テーブルに保存される。
roomモデル
class Room < ApplicationRecord
has_many :room_users
has_many :users ,through: :room_users ←こちら
end
roomsコントローラー
def create
@room = Room.new(room_params)
if @room.save
redirect_to root_path
else
render :new
end
end
private
def room_params
params.require(:room).permit(:name,user_ids:[]) ←user+_ids
end
親要素のroomが保存される時に、roomのnameとそれに紐づく複数のuser_idが中間テーブルに入ることになる。
※補足:なぜ、モデル+_idsが使えるのか?
⇒この答えは、has_manyでアソシエーションしているからである。
○参考記事
https://web-camp.io/magazine/archives/17680#i-3