我以为我们会做

helper_method :current_user, :logged_in?, :authorized?

使这些 Controller 方法可用作 View 中的辅助方法。但是在Restful Authentication的lib/authenticated_system.rb中,我看到了:
# Inclusion hook to make #current_user and #logged_in?
# available as ActionView helper methods.
def self.included(base)
  base.send :helper_method, :current_user, :logged_in?, :authorized? if base.respond_to? :helper_method
end

为什么这样做而不是单行呢?另外,我看不到included在任何地方被调用。

最佳答案

包含模块时,将调用self.included函数。它允许在基础环境(其中包含模块)中执行方法。

更多信息:a ruby mixin tutorial

关于ruby-on-rails - #self.included(base)在Ruby on Rails的Restful Authentication中做什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5160780/

10-11 16:51