活跃记录中@的基本问题区别

时间:2011-01-06 12:43:14

标签: ruby

我有一个基本问题,我无法从ruby中理解。如果在活跃的记录中,我有“@food”,它与“食物”有什么不同。我知道它是一个数组,但不是主动记录可以假定为数据列表(数组?)

感谢分享

2 个答案:

答案 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