嗨,我正在尝试使用 mixin 来定义一些使用 define_method 的方法。我想做类似的事情
module A
%w(a b c d).each do |w|
define_method(w) { "method #{w}" }
end
end
所以我可以这样做
class B
include A
end
B.new.c # => 'method c'
但这不起作用。
我已经尝试了(几乎)所有涉及包括的东西,instance_eval class_eval 等......没有工作。
有可能吗?
更新
我发布的示例中最初存在语法错误,但这不是真正的问题。我只是为帖子制作了示例,这不是真实的示例(发布时间太长了)。
我的问题是我在列表中使用了逗号%w(a, b, c, b)
而不是%w(a b c b)
因此,a,
被定义而不是a
. 愚蠢的我,(虽然很难发现)。
看到它对你们有用,帮助我解决了问题,谢谢