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

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.

(编辑:李大同)

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

    推荐文章
      热点阅读