0

私はこのクラスを持っています:

class SpecialAwesome
  module Controller
    def builder
      SpecialAwesome.with_member(current_member)

これは言って失敗します:

NoMethodError: undefined method `with_member'

しかし、私はここでメソッドを参照してください:

class SpecialAwesome
  module Options
    def with_member member
      self.class.new options.merge(:member => member)
    end

他のファイルがこの方法を認識しないのはなぜですか?

4

2 に答える 2

2

メソッドは、のクラス メソッドとしてではなくwith_member、 のインスタンス メソッドとして定義されています。おそらく、これは問題です。SpecialAwesome::OptionsSpecialAwesome

于 2013-07-10T13:27:46.810 に答える
1

with_memberSpecialAwesomeクラスメソッドではありませんが、Optionsモジュールで定義されています。期待どおりに動作させるには、たとえばextendメソッドを使用できます。

class SpecialAwesome
  module Options
    # ...
  end
  extend Options
  # ...
end

Optionsモジュールで定義されたメソッドをSpecialAwesomeクラスメソッドとして追加します。

于 2013-07-10T13:28:59.973 に答える