Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将金额添加到不工作的现有金额_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 将金额添加到不工作的现有金额

Ruby on rails 将金额添加到不工作的现有金额,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我正在尝试将金额添加到库存中的现有项目金额中 但这不算什么,我做错了什么 def add_item_to_inventory (theItem, theAmount) @playerinventory = Playerinventory.find(params[:id]) @item = Item.find(theItem) if !@item.nil? if !@playerinventory.item_for_inventories.find_by_

我正在尝试将金额添加到库存中的现有项目金额中

但这不算什么,我做错了什么

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

    if !@item.nil?
      if !@playerinventory.item_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
def将项目添加到库存(ITEEM、theAmount)
@playerinventory=playerinventory.find(参数[:id])
@item=item.find(ITEEM)
如果@项目0.0?
如果@playerinventory.item\u用于库存。按\u item\u id(ITEEM)查找\u
@ifi=ItemForInventory.create(:item=>@item,:amount=>theAmount)

@playerinventory.item_for_Inventoryitem_for_Inventory似乎与playerinventory有关系,更新ItemForInventory后您正在保存playerinventory,您应该保存ItemForInventory或可能会更新它..如
@playerinventory.item_for_Inventory.find_by_item_id(ITeem)。更新_属性(金额:newAmount)

使用bang save保存!看看出了什么问题,我想有些验证可能会失败。不过,用一个新的ItemForInventory保存就像一个符咒一样有效。@Carl船长,如果我的回答对你有帮助的话,你介意接受吗。