Я хочу знать, знаете ли вы, как написать следующий SQL-запрос более "рельсовым способом"
UPDATE buy_order_detail
SET saldo = saldo - detail_purchase.cantidad
FROM purchase_detail
INNER JOIN purchase ON purchase.id =
purchase_detail.purchase_id
INNER JOIN waybill ON waybill.id =
purchase.waybill_id
INNER JOIN buy_order ON buy_order.id =
waybill.order_id
INNER JOIN buy_order_detail ON buy_order.id =
buy_order_detail.order_id
WHERE purchase_detail.product_id = buy_order_detail.product_id
Я пробовал что-то подобное в "DetailPurchase модели"
def after_create
pchs = Purchase.find(self.purchase_id)
wbl = Waybill.find(pchs.waybill_id)
bdr = BuyOrder.find(wbl.buy_order_id)
BuyOrderDetail.find_by_buy_order_id(bdr.id).where(:product_id => self.product_id).update_attribute(:saldo, buy_order_detail.saldo - cantidad)
end
Но когда я проверяю значение "saldo", оно всегда сохраняет прежнее значение