Существуюет form object для создания записи и нужных ассоциаций. Как грамотно расширить класс, чтобы он обеспечивал корректное обновление данных, а не только создание?
module Company
class JobForm
include ActiveModel::Model
attr_accessor :title, :body, :city, :start_date, :attachments,
:requirements, :company
attr_reader :object
validates :title, :body, :start_date, :city, presence: true
def save
persist! if valid?
end
private
def persist!
ActiveRecord::Base.transaction do
save_job
save_attachments
save_requirements
end
object
end
def save_job
@object = company.jobs.create(
# attributes.. ..)
end
def save_attachments
return unless attachments&.present?
attachments.each do |attacment_attributes|
object.attachments.create(attacment_attributes)
end
end
def save_requirements
return unless requirements&.present?
object.requirements.destroy_all
requirements.each do |requirement_attributes|
object.requirements.create(requirement_attributes)
end
end
end
end