【发布时间】:2015-08-01 15:35:03
【问题描述】:
我有一个显示用户和角色的视图。我可以让它显示所有用户和一个带有 user.roles.first.name 的角色。 我无法让它循环并检索所选用户的所有角色。 任何帮助都会很棒。
<h1>Admin#users</h1>
<p>Find me in app/views/admin/users.html.erb</p>
<ul>
<table class="table-bordered col-md-6 ">
<% @users.each do |user| %>
<tr>
<td><%= link_to user.email, edit_user_path(user) %></td>
#guess a loop here .. unable to find how to show all of a users roles.
<td><%= user.roles.first.name %></td>
# end loop
<td><%= user.id %></td>
</tr>
<% end %>
</table>
</ul>
管理控制器:
class AdminController < ApplicationController
before_action :authenticate_user!
authorize_resource :class => AdminController
def dashboard
@user = current_user
end
def users
@users = User.all
end
end
用户类别:
class User < ActiveRecord::Base
rolify
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
end
角色类:
class Role < ActiveRecord::Base
has_and_belongs_to_many :users, :join_table => :users_roles
belongs_to :resource, :polymorphic => true
validates :resource_type,
:inclusion => { :in => Rolify.resource_types },
:allow_nil => true
scopify
end
【问题讨论】: