0

当我尝试访问实例变量 id 作为下面的@line_item.id 时,我收到一个错误(当我记录调试值时为零)。但是 [:id] 工作正常为什么会这样?

@cart = current_cart
@line_item = @cart.line_items.find_by_id(params[:id])
@line_item =  @line_item.decrement_quantity(@line_item[:id])
4

1 回答 1

0

正如@Kyle 所说,@line_item.id 和@line_item[:id] 应该返回相同的值。

另外,当您在对象上调用实例方法时,@line_item您不需要 @line_item.id作为该方法的参数。您可以直接访问self.id内部方法

我建议写一些像 -

@cart = current_cart
@line_item = @cart.line_items.find_by_id(params[:id])
@line_item.decrement_quantity


## inside model 
class LineItem < 
  def decrement_quantity
    puts self.id # will print the id of object calling method
  end
end
于 2012-08-14T07:08:29.143 回答