更新日時:2021/5/17
「Railsで使用するインスタンス変数と、それをビューに渡す方法について知りたい。」
今回は上記の質問に答える記事になります。
この記事を読む事で、
インスタンス変数をビューへ渡す方法
上記が分かります。
例題を用いて解説しますので、お付き合い頂ければと思います。
【目次】
【Rails:インスタンス変数の使い方】例題
Railsで次のようなコントローラがあるとします。
```Rails(Ruby)
1 class ArticlesController < ApplicationController
2 def show
3 article = Article.find(params[:id])
4 end
5 end```
showアクションの中にあるarticleという変数ですが、このままだとビューの表示を意図した通りに行うことができません。
その理由と解決策を述べてください。
【Rails:インスタンス変数の使い方】模範回答
まずは、理由からです。
3行目の変数articleは、通常のローカル変数であるためビューで使うことができません。
つまり、理由としましては
❗️ローカル変数は、ローカル変数が宣言されたアクション内でしか使えないから
上記の理由です。
そして、全ての変数には「スコープ」と呼ばれる、利用範囲たるものが存在しています。
スコープについては、次の記事を読むと理解しやすいはずです。
なのでビュー(view)に変数articleの中身を表示させる為には、
解決策
💡articleをインスタンス変数として認識される「@article」に変更する
これで、view側で@articleの中身を表示できます。
例えば次のように、ビューに宣言することでインスタンス変数の中身を表示できます。
【コントローラー】
```Rails(Ruby)
1 class ArticlesController < ApplicationController
2 def show
3 @test = "インスタンス変数の使い方" // インスタンス変数testに文字列を格納
4 end
5 end
```
【ビュー】
```Rails(Ruby)
1 <p>
2 記事のタイトルは「<%= @test %>」です。
3 </p>
```
出力結果→記事のタイトルは「インスタンス変数の使い方」です。
尚、ビューでのインスタンス変数の中身表示は
<%= @変数名 %>
で覚えておきましょう。
最後に
以上、Railsでのインスタンス変数をビューへ渡す方法について解説しました。
初学者の方ですと、変数周りのエラーでつまずくことも多いです。
ですが本記事で、インスタンス変数について理解できたのではないでしょうか。
これも理解できれば、開発がさらに楽しくなりますので、難しいと思いますが頑張ってください!
そしてまた一歩、Railsの知識及びエンジニアとしてのスキルが一段上がりましたね。
以上です、ありがとうございました。
【関連記事】