我從頭構建用戶授權並一直在處理用戶角色。我被困在權限部分,因爲我不知道如何定義它。當我向控制器添加「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
Permission.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
我不知道的是如何在我的應用程序正確地定義權限這樣我就不會收到那個錯誤。有沒有人有任何想法?
權限是一個ActiveRecord模型嗎?還是一個簡單的對象?你在哪裏定義了它? – pierallard 2013-03-14 14:50:46
我剛剛添加了我的permission.rb文件。 – pwz2000 2013-03-14 14:52:02
是的,請參閱下面的答案。你**肯定**應該看看** [學者](https://github.com/elabs/pundit)** – deefour 2013-03-14 14:52:15