我需要能够根据用户权限呈现多个不同的布局。我有一个拥有一个所有者和许多成员的组。我也有大量用户,他们可能在一个小组中,也可能不在小组中。如果我有一个组,如何为组所有者,组成员或非成员用户呈现不同的布局?
我不想为此
使用授权gem我在想这样的事情:
<% if current_user == @group.owner %>
<% render partial_1 %>
<% elsif current_user == @group.member && != @group.owner %>
<% render partial_2 %>
<% else %>
<%render partial %>
<% end %>
这是无效的吗?效率低下?对此有最佳/更好的做法吗?
答案 0 :(得分:1)
基本上没问题,你不需要检查用户是否不是主人,并且假设用户可以有很多组,并且组可以有很多成员,你需要检查是否包含一个或者另一个,而不是group.member
(@group.members.include?(current_user)
会起作用,但我在下面提出相反的建议,或者没有问题。
<% if current_user == @group.owner %>
<% render partial_1 %>
<% elsif current_user.groups.include?(@group) %>
<% render partial_2 %>
<% else %>
<% render partial %>
<% end %>