0

私は次のようなシングルトンクラスを取得しました

module Database
  class Table
    include Singleton
    # ...
  end
end

そして、このクラスでは、メソッドでdefine_method-methodとgetを使用しています。

/home/jrn/Development/RocketRuby/lib/modules/database.rb:184:in `block in register_methods': undefined method `define_method' for #<Accounting::UsersTable:0x00000001f103c8> (NoMethodError)

(ご覧のとおり、クラスはモジュールでTable呼び出されたクラスに継承されています)UsersTableAccounting

何がうまくいかなかったのでしょうか?define_methodsとで作業するときの典型的な間違いは何Singletonですか?

あなたの、ジョーン

4

1 に答える 1

0

このようなことを試しましたか?

class Table
  include Singleton

  def register_methods
    self.class.send(:define_method, :hello) { puts "Hello!" }
  end


  # or ...

  def register_methods
    define_singleton_method(:hello) { puts "Hello!" }
  end
于 2012-10-04T18:18:09.943 に答える