showのコードを追う。

今度は個別表示(Show)へのリンクをクリックした後のコードの流れを見てみる。

webブラウザ

一覧表示(list)ページで、Showへのリンクをクリックすると下記ページが表示される。

http://localhost:3000/softwares/show/6

コントローラsoftwares_controller.rb
  def show
    @software = Software.find(params[:id]) ...Softwareモデルにfind(6)というメッセージを送信して、データベースsoftwaresテーブルのid=6の行を、変数@softwareに代入している。
  end
ビュー
show.rhtml
個別表示のページ全体を描画をする。
<% for column in Software.content_columns %> ...softwareテーブルの列タイトル情報を変数columnに入れる、列数分繰り返す。*1
<p>
  <b><%= column.human_name %>:</b> <%=h @software.send(column.name) %> ...「Title:Ruby」のように描画する。(列タイトル:そのデータ内容)*2
</p>
<% end %>

<%= link_to 'Edit', :action => 'edit', :id => @software %> | ...Editと表示して、editメソッドへのリンクを張る。
<%= link_to 'Back', :action => 'list' %> ...Backと表示して、listメソッドへのリンクを張る。

*1:for column in Software.content_columns
Software.content_columnsで、Softwareモデルにcontent_columnsメッセージを送信して、データベースのsoftwareテーブルの列情報を取得している。
3列分の情報が取得できるので、for column inの構文によって変数columnに1列ずつ情報を入れて、次のendまでの間を、3回繰り返すことになる。

*2:column.human_name、@software.send(column.name)については、list.rhtmlの解説を参照