-1

假设我有一些

class Generator
      attr_accessor :param1
      attr_accessor :param2

      def initialize(param1, param2)
          @param1 = param1
          @param2 = param2
      end
      include Command

并且在Command

module Command
    extend ActiveSupport::Concern

      def self.included(klass)
        @path ||=klass.new(@param1,@param2) unless (@param1.nil? && @@param2.nil?)
      end

假设我创建了一些Generator.new(param1,param2),然后是 @param1 并且@param2在被模块包含时为零。如何在included方法中获取这些值?

4

1 回答 1

3

看来你不清楚很多事情。您的initialize方法可能是说:

 @param1 = law
 @param2 = current_user

但除此之外,您似乎不了解什么是included钩子以及何时调用它。当行 in执行时,您的included钩子只会被调用一次。当你创建一个新的 with 时,你的钩子已经被调用并且不会再次被调用。include CommandGeneratorGeneratorGenerator.new(param1,param2)included

included作为一个友好的建议,如果您是 Ruby 的初学者,我建议您在尝试使用诸如钩子之类的东西之前先使用该语言的基本功能并充分了解它们。

于 2013-11-04T13:31:29.577 回答