Validate order lines on order creation (ActiveResource)

I have order model that has many lines. I would like to create order
only when all order lines will be created:

require 'rubygems'
require 'activeresource'
class PurchaseOrder < ActiveResource::Base = "http://admin:secret@localhost:23456"
o = PurchaseOrder.create(:account_ref => '123', :lines => [{ :code =>
"111" }, {:code => "222"}])
puts o.inspect

If I add validation that code has to be <200, then the PurchaseOrder
should never be created.

The problem is, I am not aware of the rails way of doing it :slight_smile:

I started directing towards doing custom validation before after_create
with this code:

class PurchaseOrder < ActiveRecord::Base
  has_many :purchase_order_lines

  attr_accessor :new_lines

  def lines=(_lines)
    @new_lines ||= []
    _lines.each do |_line_params|
      puts _line_params.inspect
      @new_lines <<

  after_create :store_lines

  def store_lines
    new_lines.each do |line|
      line.purchase_order = self!

However this does not seem elegant. How can I do it, so that the
creation is done in one call and less custom code needs to be written?

Tomasz Bak