【发布时间】:2011-11-03 20:29:31
【问题描述】:
我得到了这样的东西:
module MyModule
define_method(:foo){ puts "yeah!" }
end
class User
include MyModule
end
但这并没有按预期工作......它们没有定义。 我还需要使用模块,因为我想将那里的方法与普通的用户方法区分开来。我喜欢这样:
MyModule.instance_methods
请帮忙..我错过了什么? 我也试过了:
module MyModule
(class << self; self; end).class_eval do
define_method(:foo){ puts "yeah!" }
end
end
这也不起作用:/
澄清......我想使用:
User.first.foo
不是
MyModule.foo
【问题讨论】:
-
我觉得还可以:
module MyModule; end=> nilclass User; include MyModule; end=> Usermodule MyModule; define_method(:foo){ puts "yeah!" }; end=> #<Proc:0x0000000101fd83e0@(irb):3>User.new.fooyeah!=> nil@9876
标签: ruby-on-rails ruby module metaprogramming