实例变量不在方法之间共享

Instance variable is not shared among methods

为什么实例变量在 rails 上的 Ruby 中不起作用?

这是我的代码:

class books
  @price = true
  def new
    p(@price)
  end
end

在控制台中它打印 nil 为什么?我希望它打印真实。

您正在尝试在 class 级别上定义实例变量。考虑使用来自 Active Support 的 @@price = truecattr_accessor(:price) { true }

In console it prints nil why? I want it to be printed true.

那个实例变量赋值在另一个对象上,class 本身。自然地,一个对象(class 的实例)不能看到另一个对象(class)的实例变量。相反,您可以在实例级别设置它

class Books
  def initialize
    @price = true
  end

  def hello
    p @price
  end
end