2012-02-21 9 views
0

私はリンクと思われるものを介して、管理者と通常のユーザーを別々にリストするユーザーインデックスページを持っています。 ...ユーザーのためのadminと通常のユーザーのユーザーインデックスを持っている

Indexビュー...私のユーザーコントローラ

class Admin::UsersController < ApplicationController 
    before_filter :require_admin_user 

    def index 
     # @users = User.admin 
     @users = User.students.paginate page: params[:page], order: 'created_at desc', per_page: 20 

     respond_to do |format| 
     format.html # index.html.erb 
     format.json { render :json => @users } 
     end 
    end 

<h1>Listing users</h1> 

<p><b><u>Students</u></b> <u>Admins</u></p> 

<table> 
    <tr> 
    <th>Email</th> 
    <th>Login count</th> 
    </tr> 

<% @users.each do |user| %> 
    <tr> 
    <td><%= user.email %></td> 
    <td><%= user.login_count %></td> 
    </tr> 
<% end %> 
</table> 

<p><%= link_to 'New User', new_admin_user_path %></p> 

これは可能ですか?

+1

別にどういう意味ですか?通常のユーザーまたは管理者のみをリストするべきですか? 1つのテーブルの管理ユーザーと別のテーブルの通常ユーザー –

+0

正しいです。それぞれのテーブルを別にしたい場合 – Norto23

+0

なぜあなたは 'あなたの管理者はどこですか 'または'どこに管理者がいないのですか'を 'User.students'に追加できませんか? –

答えて

1

2つのテーブルが異なる場合、別のビューを実行するのが最も簡単な方法です。一番上のリンクは、あなたがそれらをどのようにしたいかだけかもしれません。

<p><b><u><%= link_to 'Students', user_path %></u></b> <u><%= link_to 'Admin', admin_path %></u></p> 

彼らは管理者をしている場合は、すべてのユーザーが、その後、区別するために列を組み合わせたテーブルを持つに対して設定している理由はありますか?そうすれば、探していることをもっと簡単に行うことができます。

+0

ええ、これは行く方法だと思います。最新のユーザーが最初に表示される必要があるため、数百人のユーザーと少数の管理者しかいないので、この方法をナビゲートする方がはるかに簡単です – Norto23

1

答えは、通常のユーザー(学生)と管理者の間にどのような違いがあり、このようなユーザーについて何を表示するかによって異なります。

管理者だけを表示したい場合は、管理者だけを表示するために、ユーザーの#インデックスアクションでパラメータを取得できます(これはRailsの方法であるかわかりません)。

生徒/管理者の詳細情報を表示したい場合は、生徒用のモデルを使用する方がよいでしょう。別のコントローラでUserモデルを拡張し、#indexアクションを切り替える管理者用モデルもあります。

あなたは、どのような情報を維持/表示する必要がありますか?ありがとう

+0

それは非常に似た情報になります、ちょうど2つのタイプのユーザーを分離したい。 1つのページ、つまりユーザーインデックスページに2つのテーブルが表示されないようにする必要があります。 – Norto23

関連する問題