加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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又是单身的效果.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读