こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、10年目エンジニアです。
この記事では、 Ruby on Railsでコントローラからビューに値を渡す方法についてを丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
Rubyのバージョン | 2.6.6 |
Ruby on Railsのバージョン | 6.0.3.5 |
この記事ではRuby on Railsのプロジェクトは
C:\rails_study\sample
に作成しています。
Ruby on Railsのアプリケーションを新規作成するやり方はこちらの記事をご参考ください。
コントローラからビューに値を渡す方法を解説
コントローラからビューに値を渡すためには、インスタンス変数というものを使います。
インスタンス変数は、@で始まる変数です。
コントローラーで
1 |
@test = 'テスト' |
というように宣言しておけば、ビューに値を渡すことができます。
ビューでインスタンス変数を参照したいときは
1 |
<%= @test %> |
というように指定すると、インスタンス変数の中身をビューに表示することができます。
では、次の章で実際に使ってみます。
コントローラからビューに値を渡す方法を解説するプログラムの概要
コントローラからビューに値を渡す方法を解説するプログラムは、
- コントローラー
- ビュー
- config\routes.rb
3つを使います。
コントローラーの新規作成時にアクションとビューを作成できるやり方は、以下の記事をご参考ください。
コントローラーは名前を【hoge_controller】とし、
sample\app\controllers\hoge_controller.rb
に格納しています。
インスタンス変数を2つ作成し、それらをビューに渡します。
ビューは名前を【index.html.erb】とし、
sample\app\views\hoge\index.html.erb
に格納しています。
コントローラーから渡されたインスタンス変数をビューで表示させ、渡せているかを確認します。
コントローラーのサンプルプログラム
1 2 3 4 5 6 |
class HogeController < ApplicationController def index @margherita = 'マルゲリータピザ' @pepperoni = 'ペパロニピザ' end end |
ビューのサンプルプログラム
1 2 3 4 5 6 7 8 |
<h1>コントローラからビューに値を渡す</h1> <p> <%= @margherita %>:2500円 </p> <p> <%= @pepperoni %>:1980円 </p> |
config\routes.rbのサンプルプログラム
1 2 3 |
Rails.application.routes.draw do get 'hoge/index' end |
実行して確認
コントローラから値を取得して画面に表示することができるのかを実行して確認します。
Ruby on Railsでサーバーを立ち上げるコマンドは
1 |
rails server |
です。
サーバーを立ち上げるコマンドの詳細な説明は、こちらの記事をご参考ください。
【http://localhost:3000/hoge/index】のURLにアクセスすれば、値を取得できていることが確認できます!
まとめ:コントローラからビューに値を渡してみよう
以上がRuby on Railsでコントローラからビューに値を渡すやり方の解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント