2014-01-26 64 views
0

我試圖向我的廣告資源中的現有項目金額添加金額。將金額添加到不存在的現有金額

雖然沒有加起來,我做錯了什麼?

def add_item_to_inventory (theItem, theAmount) 
    @playerinventory = Playerinventory.find(params[:id]) 
    @item = Item.find(theItem) 

    if [email protected]? 
     if [email protected]_for_inventories.find_by_item_id(theItem) 
     @ifi = ItemForInventory.create(:item => @item, :amount => theAmount) 
     @playerinventory.item_for_inventories << @ifi 

     else 
     oldAmount = @playerinventory.item_for_inventories.find_by_item_id(theItem).amount 
     newAmount = oldAmount.to_i + theAmount.to_i 

     @playerinventory.item_for_inventories.find_by_item_id(theItem).amount = newAmount 
     end 

     if @playerinventory.save 
     return true 
     else 
     return false 
     end 

    end 

    false 
    end 

if部分作品像一個魅力。 else不是

注意,theItem是一個item_id。之後很明顯,我做@playerinventory.save

+0

保存與砰保存!看看有什麼不對,我認爲一些驗證可能會失敗。 –

+0

然而,使用新的ItemForInventory進行保存就像是一種魅力。 – CaptainCarl

回答

1

item_for_inventories似乎是playerInventory的關係,要更新ItemForInventory後節省playerInventory,您應該保存ItemForInventory或可更新..Like @playerinventory.item_for_inventories.find_by_item_id(theItem).update_attributes(amount: newAmount)

+0

工程就像一個魅力,謝謝! – CaptainCarl

+0

@CaptainCarl你會介意接受我的答案,如果它幫助你。 –

+0

我有一個冷卻時間,現在完成 – CaptainCarl