2014-03-13 173 views
0

我有大約12款車型,但我不知道如何使關係和其他的東西與3模式:紅寶石模型關聯

電流的關係:

purchase has_many purchase_items 

purchase_item belongs_to item 

purchase_item belongs_to purchase 

item has_many purchase_items 

我所做的工作形式,其中我可以創建新的購買(添加多個項目),但現在我想在表中存儲實際數量的項目,因此在創建/更新/刪除模型購買或purchase_items(我不確定哪個)模型「庫存」後,也應該更新。我知道我必須在ActiveRecord回調中做到這一點。

問題:

  • 我應該使用哪種關係做出和模型之間?鑑於(新購)的代碼
  • 當前片段:

    <%= purchase_form.nested_fields_for :purchase_items do |nested| %> 
    

我一定要添加的東西到這個^爲模型的庫存?

回答

0

您不一定需要更新您的inventory模型才能完成此操作。考慮解決這樣的:

# purchase_item.rb 
after_save :update_quantity 

def update_quantity 
    item.quantity -- 
end 

和訪問庫存爲每個特定的項目可以是這樣的:

# inventory.rb 

def get_inventory_for_item(item) 
    item.quantity 
end 
+0

什麼「item.quantity - 」嗎?據我所知,保存在purchase_item中後保存update_quantity,但我沒有在模型'item'字段中'數量'。在模型項目中,由於每個項目都與某個倉庫相關,因此我只在倉庫中存儲有關產品的名稱,描述等信息,所以我的項目處理過程如下所示:1.添加項目(項目模型)2.添加項目到倉庫(採購模型+ purchase_items) – masscrx

+0

'數量'旨在跟蹤您仍有庫存的特定「商品」的數量,因此每次銷售商品時都會減少它(創建purchase_item)。 – nicohvi

+0

購買=增加庫存物品,賣=減少,但是「 - 」是某種方法還是什麼?因爲我仍然不明白什麼,並且在哪裏更新 – masscrx