ローカル変数とは
定義されているアクション内でしか使われない変数。下記のlistみたいなもの
controllers/lists_controller.rb
def create
list = List.new(list_params)
list.save
redirect_to list_path(list)
end
ローカル変数はview→コントローラしかできない
このcreateアクションのlistはview→createアクションのみしか出来ず、createアクション→viewが出来ない
インスタンス変数とは
アクション(def~endまで)が終わるまでは使える(定義した文字列の行き来が出来る)もの
下記の@listみたいなもの
controllers/lists_controller.rb
def edit
@list = List(params[:id])
end
view→コントローラもコントローラ→viewも出来る!
注意したいのは
・インスタンス変数はアクションが終わるまでしか使えないこと。
・editアクションが終わってshowアクションに行ったら@listの値は変わっていること。
じゃあ全部インスタンス変数にすればよくね?
動くには動く。けど、重くなる。
たくさん動いて疲れちゃったよ~
余分なコードを書くと無駄に色んな動作をしちゃうから、ちゃんと使い分けよう!