ruby-on-rails – 在Ruby中动态地向类添加类

ruby-on-rails – 在Ruby中动态地向类添加类,第1张

概述假设我像这样动态创建一个模块: app = Object.const_set('CoolModule', Module.new) 反正有没有为该模块添加一个类?这样的事可能吗? app << (class Application; end) 我基本上试图让以下内容继续下去 module 'CoolModule'.turnThisIntoAModule class Application < R 假设我像这样动态创建一个模块:

app = Object.const_set('CoolModule',Module.new)

反正有没有为该模块添加一个类?这样的事可能吗?

app << (class Application; end)

我基本上试图让以下内容继续下去

module 'CoolModule'.turnThisIntoAModule  class Application < Rails::Application    config.blabla = 2  endend
解决方法 您可以为动态命名的模块添加一个类,如下例所示:

app = Object.const_set('CoolModule',Module.new)Object.const_get('CoolModule').  const_set('Application',Class.new(Rails::Application) do    config.blabla = 2  end)

如果您可以在调用点访问app对象,那么它当然可以替换Object.const_get(‘CoolModule’)表达式.

Module.module_eval建议自己,但不幸的是它不以块形式进行范围查找.它在字符串参数形式中执行,但我不鼓励在字符串上使用evals.

总结

以上是内存溢出为你收集整理的ruby-on-rails – 在Ruby中动态地向类添加类全部内容,希望文章能够帮你解决ruby-on-rails – 在Ruby中动态地向类添加类所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1277115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存