表の行数2007年11月01日 13時00分58秒

とても平素な表であれば、Ruby on Rails では簡単に作成できる。表の行数も増えてくると、せめて通し番号ぐらい付けたくなる。しかし、通し番号はちょっとしたコツが必要だ。


<table>
  <tr>
    <th></th>
  <% for column in Todo.content_columns %>
    <th><%= column.human_name %></th>
  <% end %>
  </tr>

<% count = 0 %>
<% for todo in Todo.find(:all) %>
  <tr>
    <td><% count = count + 1 %><%= count %></td>
  <% for column in Todo.content_columns %>
    <td><%=h todo.send(column.name) %></td>
  <% end %>
    <td><%= link_to 'Show', :action => 'show', :id => todo %></td>
    <td><%= link_to 'Edit', :action => 'edit', :id => todo %></td>
    <td><%= link_if_authorized 'Destroy', { :action => 'destroy', :id => todo },
      :confirm => 'Are you sure?', :post => true %></td>
  </tr>
<% end %>
</table>

  1. 繰り返しの前に、count をゼロで初期化する。
  2. 一つ増やした後に、表示する。
一般的には一から数えるので、こうなる。また、ゼロで初期化している為、繰り返しの後に行数が残る。一で初期化して、後置で増やすと、一つずれる事になる。

また、一気に<= ++count > で表示とインクリメントをやろうとしたが、Rails が処理に失敗し、使えなかった。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2007/11/01/1883110/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。