: counter_cache para o total de itens
Eu tenho um conjunto simples de duas tabelas relacionadas de um 'pedido' que tem muitos 'itens de linha'. Há também uma quantidade associada a um item de linha, por exemplo,
Order1
line_item a: 'tecelagem de cesta para iniciantes', quantidade: 3
line_item b: 'um guia de manequins para vampirismo', quantidade: 1
Quando estabeleco a migração, posso incluir a quantidade usando:
Order.find(:all).each do |o|
o.update_attribute :line_items_count, o.line_items.map(&:quantity).sum
end
que me fornece o número correto de itens (4), mas não consigo fazê-lo no modelo de pedidos, porque não consigo transmitir a quantidade de itens de linha e, portanto, conta apenas o número de itens de linha (2).
Então, no modelo line_item, tenho:
belongs_to :order, :counter_cache => true
Existe alguma maneira de especificar a quantidade para que diga corretamente 4 em vez de