TodoList: 所属を list で表示2006年12月08日 10時30分29秒

前回は、organization テーブルと user テーブルを、各ユーザは一つの組織に所属出来るという、一対多の関連を作った。

しかし、rails の scaffold で使われているActiveRecord の関数では、_id で終わる項目は表示されない。そのため、http://localhost:3000/user/list にアクセスしても、どの組織に所属しているかが表示されない。

なお、今回は user_engine に変更を加えているので、http://localhost:3000/user/list を表示しているには、vendor/plugins/user_engine/app/views/user/list.rhtml である。これを、コピーしてくる必要がある。


% mkdir app/views/user
% cp vendor/plugins/user_engine/app/views/user/list.rhtml app/views/user

その後、list.rhtml を編集し、自分で組織を表示するように変更する。ユーザが何らかの組織に所属していた場合のみ、組織名を表示する。つまり、user.organization が NULL で無いときに表示だ。


% cvs diff -u8
--- app/views/user/list.rhtml   6 Dec 2006 07:37:12 -0000       1.1
+++ app/views/user/list.rhtml   6 Dec 2006 07:44:02 -0000
@@ -1,23 +1,25 @@
 <h1>Listing Users</h1>
 
 <table id="user_list" class="object_list">
   <tr>
 <% for column in @content_columns %>
     <th><%= column.human_name %></th>
 <% end %>
+    <th>Organization</th>
     <th>Actions</th>
   </tr>
 
 <% for user in @all_users %>
   <tr>
   <% for column in @content_columns %>
     <td><%=h user.send(column.name) %></td>
   <% end %>
+    <td><%= Organization.find(user.organization_id).name if user.organization_id %></td>
     <td>
       <ul class="actions">
         <%= link_if_authorized 'Show', {:action => 'show', :id => user }, :wrap_in => "li" %>
         <%= link_if_authorized 'Edit', {:action => 'edit_user', :id => user}, :wrap_in => "li" %>
         <% if authorized?(:action => 'delete_user') && (user.login != UserEngine.config(:admin_login)) %>
         <%= button_to 'Destroy', :action => 'delete_user', :id => user %>
       <% end %>
       </ul>
     </td>  
   </tr>

http://localhost:3000/user/list に、Organization が表示されるようになる。しかし、このままでは http://localhost:3000/user/edit からでは、所属を編集することができない。そのため、SQL で直接 users テーブルの organization を変更しない限り、所属は空欄のままだ。

前回次回

コメント

コメントをどうぞ

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

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

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

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2006/12/08/988254/tb

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