我有这样的事情:
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
解决方法
你总是可以使用extend self trick:
module MyModule define_method(:foo){ puts "yeah!" } extend self end
这具有使该模块既是mixin又是单身的效果.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。