Sun~sun~Flower's

〜ITエンジニアとして日々前向きに生きていくノウハウブログ〜

MENU

【Rails超基礎】インスタンス変数をビューに渡す方法を解説!

f:id:mTakata:20200528121753j:plain

更新日時: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は、通常のローカル変数であるためビューで使うことができません。

 

つまり、理由としましては

❗️ローカル変数は、ローカル変数が宣言されたアクション内でしか使えないから

上記の理由です。

 

そして、全ての変数には「スコープ」と呼ばれる、利用範囲たるものが存在しています。

 

スコープについては、次の記事を読むと理解しやすいはずです。 

www.sunsunflowers.com

なのでビュー(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の知識及びエンジニアとしてのスキルが一段上がりましたね。

 

 以上です、ありがとうございました。

 

【関連記事】

www.sunsunflowers.com