今回の学び
インスタンス変数とローカル変数について
インスタンス変数を使用する際には、
@test = Test.new
といったような形にするが、
これをすることによってどうなるか?
ローカル変数は
test = Test.new
のような形になる。
def create
@test = Test.new
end
と
def create
test = Test.new
end
の違いは、createアクションの中でしか使えないのが
test = Test.new
createアクション以外でも使用できるのが
@test = Test.new
となる。
例えば、コントローラーのcreateアクションを行う際に、Test.newをViewファイルで使用する際には、ローカル変数のtestでは❌
インスタンス変数である@testを使用する必要がある。
なので、そのアクション内だけでしか、その変数を使用しないのならば問題ないが、そのアクション外でも(他のファイルや、部分テンプレートにて使用する際など)使用するのであれば、インスタンス変数として設定しておく必要がある。