-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を作成し、 @param2nil であるとします。includedメソッド内でこれらの値を取得するにはどうすればよいですか?

4

1 に答える 1

3

あなたは多くのことについてはっきりしていないようです。あなたのinitialize方法はおそらく言うことを意図していました:

 @param1 = law
 @param2 = current_user

includedしかし、それはさておき、フックとは何か、いつ呼び出されるのかを理解していないようです。フックは、行が実行されるincludedときに一度だけ呼び出されます。で新しい を作成するまでに、フックはすでに呼び出されており、再度呼び出されることはありません。include CommandGeneratorGeneratorGenerator.new(param1,param2)included

フレンドリーな提案として、あなたが Ruby の初心者であれば、言語の基本的な機能を使用し、includedフックなどを利用する前にそれらをよく理解することをお勧めします。

于 2013-11-04T13:31:29.577 に答える