2012-02-21 60 views
0

我想让用户索引页面分别列出管理员和普通用户,下面您可以选择学生或管理员视图,通过我认为的链接。 ..对于用户拥有管理员和普通用户的用户索引

索引视图...

<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> 

在我的用户控制

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 

这可能吗?

+1

分别是什么意思?你应该只列出普通用户还是只有管理员用户?一个表中的管理员用户和另一个表中的普通用户? – 2012-02-21 04:54:48

+0

这是正确的。为每个 – Norto23 2012-02-21 04:57:33

+0

需要单独的表格为什么你不能只在你的User.students中添加一个“哪里是管理员”或“哪里不是管理员”? – 2012-02-21 05:56:03

回答

1

如果你对两个表有两个不同的表,那么做另一个视图将是最简单的方法。顶级链接可能就是你想要的。

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

有你,如果他们是管理员设置针对具有桌子结合所有用户,然后区分的列的原因是什么?这会让你更容易做你正在寻找的东西。

+0

是的,我认为这是要走的路。这只是会有数百个用户,只有少数管理员,这将导致更容易导航,因为我需要最先显示的最新用户 – Norto23 2012-02-21 12:27:15

1

我认为答案取决于普通用户(学生?)和管理员之间存在哪些差异,以及您希望展示哪些类型的用户。

如果您想要显示哪些用户是管理员,您可以在用户#索引操作中获取参数以仅显示管理员(我不知道它是否是Rails方式)。

如果您想要为学生/管理员显示更多/不同的信息,最好为学生设置一个模型,另一个设置为使用单独控制器扩展用户模型的管理员,并在他们的#index操作之间切换。

您能否更好地解释您需要维护/显示哪种信息?谢谢

+0

这样做,它会非常类似的信息,只是想分开两种类型的用户。但不希望在一个页面(用户索引页面)上显示两个表格。 – Norto23 2012-02-21 06:55:23

相关问题