我想让用户索引页面分别列出管理员和普通用户,下面你可以选择学生或管理员视图,通过我认为是链接......
用户的索引视图......
<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
这可能吗?
答案 0 :(得分:1)
我认为答案取决于普通用户(学生?)与管理员之间存在哪些差异,以及您希望展示的有关这类用户的内容。
如果您想显示哪些用户是管理员,您可以在Users#index操作中获取一个参数,仅显示管理员(我不知道它是否是Rails方式)。
如果您想为学生/管理员显示更多/不同的信息,可能最好为学生建立一个模型,为管理员创建另一个模型,使用单独的控制器扩展用户模型并在#index操作之间切换。
你能更好地解释一下你需要维护/展示什么样的信息吗?感谢
答案 1 :(得分:1)
如果您为这两个表设置了两个不同的表,则执行另一个视图将是最简单的方法。顶部链接可能就是您想要的方式。
<p><b><u><%= link_to 'Students', user_path %></u></b> <u><%= link_to 'Admin', admin_path %></u></p>
您是否有理由设置一个表合并所有用户,然后使用一列来区分他们是否是管理员?这样可以更轻松地完成您所需要的工作。