0

我有一个单例类

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

在这个类中,我在一个方法中使用define_method-method 并得到:

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

(如您所见,该 ClassTable已被UsersTableModule 中调用的 Class 继承Accounting

可能出了什么问题?define_methods使用and时的典型错误是什么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 回答