コントローラで定義した情報をビューに渡すための仕組みについて、復習してみた。
Railsでは、ルーティング→コントローラ→ビュー(MVC)の順番で情報処理が行われている。
ここで、コントローラはビューにコントローラ内で定義した情報を渡すためのつなぎ役としての役割を担っている。では、コントローラで定義した情報をビューに渡す方法について、解説する。
まず、コントーラ内に以下のような記述をして情報を定義をする。
class TweetsController < ApplicationController
def index
@tweets = Tweet.all
end
end
アクションの定義をして、その中にインスタンス変数を定義する。インスタンス変数とは、@つきの名前の変数をいう。上記の例では、@ tweets を指す。ここで、@マークをつけ忘れると、インスタンス変数ではなく、indexアクション内でしか使えないローカル変数としてみなされてしまい、ビューに情報(全てのツイート情報)を渡すことができない。
そして、渡された情報をビューで使用するには、その情報を<%= %>で変数名を囲んであげる必要がある。<%= %>の中のrubyコードは、ビューをレスポンスとして返すまでに実行されて、最終的にはHTMLになる。
例えば、上記の例において、ツイート情報をビューに写すためには、以下のような記述をする。
<%= @tweet %>
以上