0
我想知道,如果你知道如何寫下面的SQL查詢的 多個SQL查詢「軌道」Rails 3中 - 更「軌道」
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」,它總是保持相同的原始值
不好意思,但你有沒有例子?我試着用Model.update_attribute()回調來解決這個問題,我用Model.where()試過了,我用Model.find()試過了......不幸的是似乎沒有任何工作 – Angelo
@Angelo ,不是說你知道鐵路方式,我認爲最好發表一個新問題。在這個問題中顯示你已經擁有的東西,並告訴哪些部分工作不正常。 – Veger
好的,我發佈了一個[新問題](http://stackoverflow.com/questions/7032067/ruby-on-rails-3-join-many-models-to-update-a-field-of-one -model-using-attribute)嘗試以更好的方式解釋我的問題 – Angelo