我正在尝试使用rails-authorization-plugin和authlogicpermit
使该方法正常工作,但我一直遇到此错误:
当我尝试:
class ApplicationController < ActionController::Base
...
before_filter permit 'admin'
...
我明白了:
Authorization::CannotObtainUserObject in HomeController#index
Couldn't find #current_user or @user, and nothing appropriate found in hash
现在我确实current_user
设置了我的方法,并且它可以工作,因为我几乎在我的应用程序的其他任何地方都使用了它:
class ApplicationController < ActionController::Base
...
helper_method :current_user
private
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
...
我也知道我的数据库中有具有适当角色的用户,因为这种方法有效:
def require_admin
unless current_user.is_admin? || current_user.is_root?
flash[:warning] = 'You are not an administrator and cannot access this page.'
redirect_to root_path
end
end
如果我只使用以下方法检查用户级别,我可以让一切正常工作:
before_filter :require_admin, :only => 'index'
...但是我不应该能够有效地使用permit
and来做同样的事情permit?
吗?
任何帮助将非常感激。如果您需要查看更多代码,请告诉我,我很乐意发布。在 Google 上,关于让这两个系统相互协作的问题,我确实没有什么可以让我做出正面或反面的决定。