问题
Pretty much what I have mentioned in the title. I am using CanCan::Ability in my code to check permissions and abilities. It expects a current_user method to be defined. I am guessing it comes from devise (but not sure), and I wish to override it. Whats the best way to do that?
回答1:
It's found here in the source code. It's nothing to do with devise, though. The documentation is found above the method and describes overwriting it.
回答2:
current_user
is implemented by devise in this eval'ed block (which, I believe is called indirectly by the devise_for(:user)
in your config/routes.rb
). If you want to override it, you should be able to define your own current_user
method in your ApplicationController
.
来源:https://stackoverflow.com/questions/12461347/cancanability-where-is-the-current-user-method-defined