我有一个基本问题,我无法从ruby中理解。如果在活跃的记录中,我有“@food”,它与“食物”有什么不同。我知道它是一个数组,但不是主动记录可以假定为数据列表(数组?)
感谢分享
答案 0 :(得分:5)
这与ActiveRecord无关。它只是简单的Ruby语法。
@foo
表示实例变量。它的范围限定为其类的实例,并且对于类的每个实例都是不同的。只要保留类实例,就会保留内容。
foo
可以表示局部变量,该变量仅在当前块范围内有效。一旦块退出,它就会超出范围,除非在别处引用,否则将丢弃内容。
@ notation与数组或任何其他数据类型无关。在Ruby中,变量没有数据类型。 @bar
可以毫无怨言地接受字符串,整数或数组。 bar
也是如此。
答案 1 :(得分:2)
@var
表示变量,其范围在模型的实例中。
http://www.techotopia.com/index.php/Ruby_Variable_Scope#Ruby_Instance_Variables