-1

rails 4 + cocoon

A little background:

orders has_many order_products order_products has_many product_sizes

In an after_save call I would like to get the total quantity of all the products. I have a database column named total_qty in the order_product model. So in this pic the total would be 37.

Screen shot

order form

= f.simple_fields_for :order_products do |order_product|
    = render 'order_product_fields', :f => order_product
      = link_to_add_association 'Add Product', f, :order_products

order_product_fields

= f.simple_fields_for :product_sizes do |product_size|
      = render 'product_size_fields', :f => product_size
        = link_to_add_association 'Add Size', f, :product_sizes

product_size_fields

<div class="row nested-fields">
 = f.input :size_name, :collection => Order::SIZES, label: false, include_blank: false
 = f.input :qty, label: false, class: "<%= product_sizes.index %>"
 = link_to_remove_association f, class: 'btn btn-danger' do
  .glyphicon.glyphicon-remove
</div>
DhatchXIX
  • 437
  • 1
  • 3
  • 17

1 Answers1

0

I ended up digging deep and finding an answer in my brain.

product_size.rb

  def size_qty
    qty
  end

order_product.rb

  def total_size_qty
    product_sizes.map do |ps| ps.size_qty end
  end

order.rb

def total_order_product_qty
  order_products.map do |os| os.total_size_qty end
end
DhatchXIX
  • 437
  • 1
  • 3
  • 17