ruby - 如何通过反射调用 ruby​​ 模块方法?

标签 ruby reflection ruby-1.8

我想让以下内容发挥作用。我的想法是,我可以向路由添加方法,如果它们存在,我可以稍后使用它们。我正在使用 Ruby 1.8。

module Routes
  def home
    #stuff
  end

  def work
    #end
  end
end

Routes.method_defined? :home
# true

Routes.send(:home)
#NoMethodError: undefined method `home' for Routes:Module

最佳答案

使用以下代码,您可以做到这一点:

Class.new.extend(Routes).send(:home)

关于ruby - 如何通过反射调用 ruby​​ 模块方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12674629/

相关文章:

java - 访问类属性我的名字

ruby - 如何使用 curses 显示 unicode 字符?

ruby - Ruby 1.8 和 Ruby 1.9 有什么区别

ruby - n ruby​​ 迭代

html - 有没有办法从 Nokogiri 获取原始 HTML?

ruby - 如何 .{n} 和 ?<option> : works in `Regexp` on Ruby 1. 9.3 环境

ruby - ruby 1.8 和 ruby​​ 2.1 的向后兼容代码不适用于文件模块

ruby-on-rails - 序数解析问题

使用反射时的.net运行时类型转换

c# - 如何以编程方式分配 .Net 属性?