So I have the following models:
class Poll < ApplicationRecord
validates :title, presence: true, allow_blank: false
validates :options, presence: true
has_many :options, dependent: :destroy
end
class Option < ApplicationRecord
validates :title, presence: true, allow_blank: false
belongs_to :poll
end
And given the following data:
{
title: "My poll",
options: [
{title: "Option 1"},
{title: "Option 2"},
{title: "Option 3"},
]
}
I would like to create a poll with 3 options.
This is my solution:
# POST /polls
def create
@poll = Poll.new(poll_params)
params[:options].each do |option|
@poll.options.new option.permit(:title)
end
if @poll.save
render json: @poll, status: :created, location: @poll
else
render json: @poll.errors.full_messages, status: :unprocessable_entity
end
end