Jak stworzyć 3 obiekty za pomocą jednego formularza?

Ale dopiero kiedy wszystkie przejdą validację?
Jest jakiś dobry wzorzec postępowania?

[code=ruby]# MODEL
class Job < ActiveRecord::Base
accepts_nested_attributes_for :company, :employer

belongs_to :company
belongs_to :employer

validates :employer_id, presence: true, on: :update
validates :company_id, presence: true

def self.initialize_with_company(job_params)
company_attributes = job_params.delete(:company_attributes)
job_params.delete(:employer_attributes)

new(job_params) do |job|
  job.company = Company.find_or_create_by_nip(company_attributes)
end

end

def create_employer(employer_attributes)
self.employer = Employer.create(employer_attributes)
end
end

KONTROLER

class JobsController < ApplicationController
def new
@job = Job.new
if current_employer
@job.company = current_employer.companies.first
else
@job.company = Company.new
end
@job.employer = current_employer || Employer.new
end

def create
employer_attributes = params[:job][:employer_attributes]
@job = Job.initialize_with_company(params[:job])
if current_employer
@job.employer = current_employer
else
@job.create_employer(employer_attributes)
end

if @job.save
  if current_employer
    redirect_to dashboard_path
  else
    redirect_to jobs_path
  end
else
  render 'new'
end

end
end[/code]
Może potrzebny jakiś drobny refaktoring.