我正在从头开始构建用户授权,并且一直在处理用户角色。我被困在权限部分,因为我不确定如何定义它。当我将“before_filter :authorize”添加到控制器时,它会在所有页面上显示“未初始化常量 ApplicationController::Permission”错误。
我知道错误来自我的 application_controller.rb 文件:
def current_permission
@current_permission || Permission.new(current_user)
end
def authorize
if !current_permission.allow?(params[:controller], params[:action])
redirect_to root_url, alert: "Not authorized."
end
权限.rb:
Class Permission < Struct.new(:user)
def allow?(controller, action)
if user.nil?
controller == "galleries" && action.in?(%w[index show])
elsif user.admin?
true
else
controller == "galleries" && action != "destroy"
end
end
我不知道如何在我的应用程序中正确定义权限,以便我不会收到该错误。有没有人有任何想法?