0

コントローラー内のすべてのインスタンス変数「@anything」をループするにはどうすればよいですか? 1つをループしたくありません。それらをコレクションとしてループしたいのです。私のコントローラーメソッドが定義するものにスコープするのが理想的です。

4

1 に答える 1

2

instance_variablesandinstance_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 に答える