FrontPage  Index  Search  Changes  Login

RailsでWikiクローンを作る06

ページ一覧

続いてページ一覧画面を実装します。ページ一覧のアクションのURLは、 /wiki/list としますので、 app/controllers/wiki_controller.rb に以下の ような list メソッドを作ります。

 def list
   @pages = Page.find(:all, :order => 'name')
 end

Page.find で、pages テーブルのすべての行を取り出しています。そのとき、: order => 'name' という指定があるので、ページ名のアルファベット順にソー トされます。この :order のパラメータは SQL の ORDER BY に相当し、値は ほぼそのまま SQL に渡されます。アルファベットの逆順に並べ替えたければ、: order => 'name desc'と書けばOKです。

ビューのテンプレートは app/views/wiki/list.rhtml で、以下のようになります。

<% @title = "ページ一覧" %>
<div class="body">
<ul>
<% for page in @pages %>
<li><%= link_to page.name, :action => 'show', :id => page.name %>:
 <%= page.updated_at %></li>
<% end %>
</ul>
</div>

link_to というヘルパーメソッドで、各ページへのリンクを生成しています。 link_to の第1引数はリンクとして表示される文字列で、第2引数以降は既出の redirect_to と同じようにアクション名やIDの指定です。これで、各ページの ページ名から、/wiki/show/ページ名 というアクションにリンクが張られます。

link_to なんか使わずに、直接 a タグを書けば良いじゃん!と思うかもしれま せんが、 link_to でリンクを張るといろいろ良いことがあるので素直に link_to を使いましょう。

そして、http://localhost:3000/wiki/list にアクセスすると以下のようになります。

ページ一覧

Last modified:2005/11/27 12:56:15
Keyword(s):
References:[RailsでWikiクローンを作る]