ruby-on-rails – 在Ruby中动态地向类添加类
发布时间:2020-12-17 02:25:42 所属栏目:百科 来源:网络整理
导读:假设我像这样动态创建一个模块: app = Object.const_set('CoolModule',Module.new) 反正有没有为该模块添加一个类?这样的事可能吗? app (class Application; end) 我基本上试图让以下内容继续下去 module 'CoolModule'.turnThisIntoAModule class Applica
假设我像这样动态创建一个模块:
app = Object.const_set('CoolModule',Module.new) 反正有没有为该模块添加一个类?这样的事可能吗? app << (class Application; end) 我基本上试图让以下内容继续下去 module 'CoolModule'.turnThisIntoAModule class Application < Rails::Application config.blabla = 2 end end 解决方法
您可以为动态命名的模块添加一个类,如下例所示:
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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |