我太陌生了,无法解决这个问题。 我有一个页面上所有用户的列表,我希望能够根据角色过滤掉列表(使用顶部的复选框或链接)。 我可以让它与表中的另一列(例如位置)一起工作,但我无法弄清楚如何使用角色。
在我的模型中,我有这个使其适用于位置:
scope :location, -> (location) { where("location LIKE ?", "#{location}%") }
然后在我的控制器中我有
@users = User.location(params[:location]) if params[:location].present?
然后在我的索引中导致这个
<% @users.each do |user| %>
<%= link_to "filter by #{user.location}", "https://example.com/users?location=" + user.location %>
<% end %>
当然,只使用&#34;角色&#34;由于Rolify不会将角色和用户保留在同一个表格中,所以无法工作。
我已尝试在我的模型中使用它
scope :role, ->(role) { Role.find_by(name: role.to_s).users }
然后我无法弄清楚如何让它在我的控制器和索引页面中运行。 任何帮助将不胜感激。
答案 0 :(得分:0)
Rolify有一个帮助方法,可以查找具有角色的用户:
User.with_any_role('your_role_here')
以上将返回一个包含具有指定角色的所有用户的数组