我使用Rails Composer生成一个使用devise,rolify和cancan gems的Rails应用程序。
我注意到我可以使用current_user方法。
当我在Textmate中使用cmd-shif-F搜索我的项目时,我找不到current_user的定义位置。我已经完成了一些自己的身份验证逻辑示例,在应用程序控制器中设置current_user似乎很常见。我的应用中没有此类代码。
仍然,我可以验证current_user函数是否有效。
这个SO Q / A here指向某些代码,但我不明白。看起来current_user是一个生成的方法,它是某些元编程魔法的结果。但是,如果在应用程序控制器的前置过滤器中未引用它,它又如何工作?
相当简单的application_controller.rb如下所示:
class ApplicationController < ActionController::Base
protect_from_forgery
rescue_from CanCan::AccessDenied do |exception|
redirect_to root_path, :alert => exception.message
end
end