访问 Ruby/Rails 实例变量的属性时返回的 nil



当我尝试以下面的 @line_item.id 形式访问实例变量 id 时,我收到错误 - (当我记录调试值时为 nil)。 但是 [: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

最新更新