我在用户控制器中添加了一个前置过滤器和 def check priv。假设设置为只有管理员可以查看/编辑所有配置文件,并且只有创建的用户可以查看他们自己的配置文件。和以前一样,任何人都可以查看/编辑个人资料。我尝试了几种方法,都没有奏效。当我以管理员甚至普通用户的身份查看个人资料时,我收到“未授权”消息。
任何帮助,将不胜感激。
用户控制器:
before_filter :check_privileges, :only => [:edit, :update]
def check_privileges
unless current_user.admin? || current_user.id == params[:id]
flash[:warning] = 'not authorized!'
redirect_to root_path
end
end
索引.html:
<%= link_to user.name, user %>
<% if (current_user.admin? || current_user) == @user %>
<%= link_to "Edit #{user} profile", user %>
| <%= link_to "delete", user, method: :delete,
data: { confirm: "You sure?"} %>
<% end %>