前記事
概要
前記事ではコントローラの関数に記述したのはビューの呼び出しのみでしたが、今回はコントローラの関数で変数に値を設定し、それを画面に表示してみます。
コントローラの関数を書き換え
[アプリケーションルート\controllers\testlist_controller.rb]ファイルを書き換えて、以下のようなコードにします。
# coding: utf-8
class TestlistController < ApplicationController
def hello
#render 'testlist/hello'
@msg= 'ほげほげ'
end
end
変更箇所は先頭行、#renderで始まる行とその一行下の行、合計3行です。
先頭行は文字コードの指定です。これを指定した上でファイルをutf8(BOM無し)で保存しないと日本語が使えないようです。
テンプレートの書き換え
[アプリケーションルート\views\testlist\hello.html.erb]ファイルを書き換えて、以下のようなコードにします。
Hello
<p>
<% @msg %>
</p>
3行目を書き換えています。<% %>で括った部分に変数等の式を記述すると、その式の評価された値に置換されます。
上記コードでは、@msgに格納した「ほげほげ」に置換され、ブラウザには以下のように表示されます。
# coding: utf-8を入れ忘れたり、ファイルをutf-8(BOM無し)で保存していないと以下のようなエラーとなります。ログを見ろ、と書かれていますがログにもエラーが吐かれていない状態になるので混乱しますが、落ち着いてコードを見直しましょう。
これで変数を使ったビューとコントローラとの値の受け渡しについては終了です。
コメント