0

我将如何遍历控制器中的每个实例变量“@anything”?我不想循环一个,我想将它们作为一个集合循环。理想情况下,仅限于我的控制器方法定义的那些。

4

1 回答 1

2

您可以使用instance_variablesand instance_variable_get,例如:

@foo = 'Foo'
@bar = 'Bar'

instance_variables # => [:@foo, :@bar]

instance_variables.map(&method(:instance_variable_get))
# => ['Foo, 'Bar']

理想情况下,仅限于我的控制器方法定义的那些。

实例变量的范围是实例,而不是方法。这就是为什么它们被称为实例变量。而且它们不是由方法定义的,事实上,它们根本没有定义它们只是在第一次被分配时就出现了。

于 2012-10-18T16:25:11.407 回答