0
0

More than 3 years have passed since last update.

ローカル変数とインスタンス変数の違いとは?【超初心者】

Last updated at Posted at 2021-02-15

ローカル変数とは

定義されているアクション内でしか使われない変数。下記の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の値は変わっていること。


全部に行き来できる引数はまた別の引数があるみたい

じゃあ全部インスタンス変数にすればよくね?

動くには動く。けど、重くなる。

たくさん動いて疲れちゃったよ~
余分なコードを書くと無駄に色んな動作をしちゃうから、ちゃんと使い分けよう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0