2012-08-22 51 views
0

我需要的是將某個itemquantity設置爲@cart.line_items集合,其中@cart.line_item.id == line_item_id。我寫了一個應該可以工作的代碼,但是我的直覺告訴我它會更簡單。找到某個集合中的某個元素並將其更改爲Ruby

def line_item_quantity(line_item_id, quantity) 
    @cart.line_items.each {|item| item.quantity = quantity if (item.id == line_item_id)} 
    respond_to do |format| 
     format.js 
    end 
end 

那麼什麼是Ruby方法使此代碼更好?

+0

我覺得這是不夠好,會引發異常。 – PriteshJ

+1

您應該設置item.quantity =數量,而不是隻有item =數量。但除此之外,你的方法有什麼問題? – christianblais

回答

2

我認爲下面的代碼應該工作,但是如果沒有LINE_ITEM發現

@cart.line_items.find(line_item_id).quantity = quantity 
+0

最有可能它不會工作,因爲查找返回枚舉器。 – Alexandre

+0

'find'只會返回第一個匹配不全 – PriteshJ

相關問題