Rails 3.2:检查命名空间模型是否可加载

时间:2012-09-03 16:20:46

标签: ruby-on-rails ruby-on-rails-3 gem

我有一个gemified引擎,这个引擎有一个函数,它将使用文件名中的const_get来填充一些数据库基本内容。
请注意,我仍然是铁杆的新手 我想要的是引擎测试是否存在常量,如果不是将下划线情况下的第一个对象转换为命名空间而不是常量名称的一部分。
现在defined?在这里不起作用,因为这些都是'加载路径'的东西,所以如果它们还没有加载但它们将无法被识别 - 在这一点上我理解这种方式之间存在一些差异开发和生产环境是有效的,我不完全理解差异,也不能找到差异的详细记录,所以如果我可以指出某些事情或给出一个令人惊奇的事情的简要解释! 基本上我想要的是有一些工作方式:

def get_namespaced_class(underscored_name)
...
end

get_namespaced_call('mygem_some_class') #returns Mygem::SomeClass class

我看到它的方式,该方法首先检查MygemSomeClass是否可达,然后开始检查命名空间选项。
我真正想要避免的一件事是抓住NameError我认为这只是肮脏和错误,我想要查找我能拥有的东西,应该有办法这样做我相信因为轨道似乎要自己做。

0 个答案:

没有答案