・はじめに
この記事ではRubyのVIEWの書き方、Controllerの書き方、Modelの書き方について復習がてら書いていきます。・VIEWの書き方
RubyのVIEWは.erbに書いていきます。書き方はHTMLファイルを基本としています。・パラメータの書き方
コントローラーから値を持ってきたいときは<%= @変数名 =>
を使います。これを書くと動的なVIEWを書くことができます。
VIEWファイルで条件分岐を使いたいときは<%= if %>
を使います。<%= if @hello =>
とするとhelloが出力されているときのみその下の処理を出力させるようにできます。
<% if @hello =>
<h1>こんにちは!</h1>
<%=else %>
<h1>こんばんは!</h1>
<% end %>
このとき@helloが出力されたときは「こんにちは!」が出力され、出力されなかった場合は、「こんばんは!」が出力されます。
またこの時、三項演算子を使用すれば短く書くことができます。
<%= @hello ? "こんにちは" : "こんばんは" %>
三項演算子とは、A ? B : Cという文があった場合、AがtrueならBを、AがfalseならCを出力するという条件分岐の文である。
・コメントの書き方
コメントは<%= begin %> ~ <% end %>
のように書きます。~に書いているところがコメントアウトされます。
一行コメントは<%# コメント %>
のように書きます。
・繰り返す処理
コレクションの繰り返しの処理<% @変数名.each do |ここでの名前| %>
、<%= ここでの名前 %>
でコレクションに入っている要素を繰り返して出力することができます。
<ul>
<% @変数名.each do |ここでの名前| %>
<li><%= ここでの名前 %></li>
<% end %>
</ul>
このように書くと、変数名のコレクションの要素をリスト形式にして繰り返して出力されます。
・データベースと連携する場合
データベースと連携して値を出力したい場合はコレクションと同じく<% @変数名.each do |ここでの名前| %>
を使います。しかし、繰り返したい部分は<%= ここでの名前.カラム名 %>
とします。
<table>
<tr>~省略~</tr>
<% @変数名.each do |ここでの名前| %>
<tr>
<td><%= ここでの名前.カラム名 %></td>
</tr>
<% end %>
</table>
このように記述すると表にデータベースの内容を載せることができます。
・リンクを挿入する場合
VIEWファイルにリンクを挿入したい場合は<%= link_to>
を使います。使い方としては、他のURLを挿入する場合は<%= link_to 'VIEWで表示させたい名前', 'サイトのURL' %>
のようにし、自分のページに移動させたい場合は<%= link_to '表示名', '/リンク/リンク/...' %>のように表記するとリンクを挿入することができます。
<p>
<%= link_to 'グーグル', 'https:www.google.co.jp/' %>
</p>
<h1>
<%= link_to '遷移!', '/home/index' %>
</h1>
このように書くとpタグの方ではグーグルという単語をクリックするとグーグルの検索ページに飛ばす文が書け、h1タグの方では遷移!をクリックするとRubyで設定した/home/indexというページに飛ぶようにすることができます。