ruby-on-rails – 在一个包含在Class中的Module中使用define_met
发布时间:2020-12-17 04:31:10 所属栏目:百科 来源:网络整理
导读:我有这样的事情: module MyModule define_method(:foo){ puts "yeah!" }endclass User include MyModuleend 但这不符合预期……它们没有定义. 此外,我需要使用模块,因为我想区分方法和普通的用户方法.我喜欢这个: MyModule.instance_methods 请帮忙..我错
我有这样的事情:
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又是单身的效果. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |