0

在一些交互器中,定义了几个函数用于调用函数(我没有使用实用程序来组织这些函数)。在这种情况下
使用@context而不是可以吗? 参考网址:https ://github.com/collectiveidea/interactor 感谢您的帮助context



4

1 回答 1

1

正如您从源代码中看到的那样,context它只是一个简单的访问器(getter 方法),声明如下attr_reader

module Interactor
  # Internal: Install Interactor's behavior in the given class.
  def self.included(base)
    base.class_eval do
      extend ClassMethods
      include Hooks

      # Public: Gets the Interactor::Context of the Interactor instance.
      attr_reader :context
    end
  end

@context因此,context只要您从包含该模块的类中访问实例变量,直接访问实例变量(

class MyInteractor
  include Interactor

  def my_method
    @context
    # is the exact same as 
    context
    # except for the method call
  end
end
于 2020-08-20T07:26:44.957 回答