2016-07-17 125 views
1

我已經創建了兩個表清單和inventory_transaction。庫存has_many:inventory_transaction和inventory_transaction belongs_to:庫存。這裏有我想要的,使每當一個新的inventory_transaction是保存自動更新庫存current_stock表中的字段如何從rails中的其他表字段更新表字段

create_table "inventorys", force: :cascade do |t| 
t.string "name" 
t.integer "current_stock" 
end 

create_table "inventory_transactions", force: :cascade do |t| 
t.string "t_type" 
t.integer "t_quantity" 
t.integer "inventory_id" 
end 

。公式是這樣的

if t_type = 'in' 
    inventory.current_stock = inventory.current_stock + t_quantity 
else 
    inventory.current_stock = inventory.current_stock - t_quantity 
end 

任何想法如何在我的紅寶石軌道項目中實現方程?

回答

0

添加到您的InventoryTransaction

after_save :update_current_stock 

    def update_current_stock 
    if t_type == 'in' 
     inventory.update current_stock: inventory.current_stock + t_quantity 
    else 
     inventory.update current_stock: inventory.current_stock - t_quantity 
    end 
    end 
end 
+0

它的工作原理。我只需要在' – hazimIskandar

+0

'中添加t_type ==='我認爲你的意思是'=='。我更新了答案。 –

相關問題