当我尝试访问实例变量 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])
当我尝试访问实例变量 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])
正如@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