【发布时间】:2013-11-16 00:47:34
【问题描述】:
正在关注 Agile Web Development with Rails 的 Depot 应用程序。 有一种方法让我感到困惑。我以为我明白了,直到我在 irb 中尝试过。那么方法如下:
def add_product(product_id)
current_item = line_items.find_by_product_id(product_id)
if current_item
current_item.quantity += 1
else
current_item = line_items.build(product_id: product_id)
end
current_item
end
据我了解,这只是一种方法,它首先在 LineItems 中查找具有给定输入的产品 ID 的记录(假设它是 10)。然后它将它存储在 current_item 变量中。条件是“如果找到产品 id,则将数量加 1,否则创建该记录的新实例,产品 id 等于 10”
这是我的 Rails 控制台的快照
如您所见,未找到 LineItem 中 10 的产品 ID。但就我的情况而言,这与我迄今为止所相信的一切背道而驰。有人能解释一下吗?
【问题讨论】:
标签: ruby-on-rails-3.1 ruby-1.9.3