まえがき
推奨されてないaccepts_nested_attributes_forを使わずに、親モデルに紐づくレコードの一括保存をしようとしたが結局うまくいかずaccepts_nested_attributes_forを使ったときの備忘録。
以下の記事を参考にしましたが、私はうまくいきませんでした。
accepts_nested_attributes_forを使ってみる
親クラスにaccepts_nested_attributes_for :テーブル名
を追加
event.rb
class Event < ApplicationRecord
has_many :possible_dates, dependent: :restrict_with_exception
accepts_nested_attributes_for :possible_dates
end
possible_dates.rb
class PossibleDate < ApplicationRecord
belongs_to :event
end
eventscontroller.rb
class Api::EventsController < ApplicationController
def create
event = Event.new(event_params.merge(hashed_url: SecureRandom.uuid))
if event.save
render json: event
else
render json: event.errors, status: :unprocessable_entity
end
end
private
def event_params
params.require(:event).permit(
:name,
:category_id,
:user_id,
:is_public,
:description,
possible_dates_attributes: %i(id proposed_at)
)
end
end
もしaccepts_nested_attributes_forメソッドを使わずに実装できる方法があれば教えていただきたいです。