rails 4 + cocoon
一点背景:
orders has_many order_products
order_products has_many product_sizes
在after_save通话中,我想获得所有产品的总数量。我在total_qty
模型中有一个名为order_product
的数据库列。所以在这张照片中,总数将是37。
订单
= 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>
答案 0 :(得分:0)
我最终深挖并在脑中找到答案。
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