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 にアクセスすると以下のようになります。


Keyword(s):
References:[RailsでWikiクローンを作る]