如何将模块类名转换为rails中的符号

时间:2013-08-18 05:40:47

标签: ruby-on-rails ruby rails-engines

在rails初始化程序文件中,有一行用于配置接受符号的活动对象:

config.objects += [ :room, :hotel, ..etc ]

这些符号代表我想要配置的类。

我的问题是我使用了一个rails引擎,它定义了我想要配置的'Blogit :: Post'模块类。如何将它作为符号添加到配置数组?

1 个答案:

答案 0 :(得分:5)

您可以通过在config.objects中添加下划线或正斜杠来控制字符串分类中的驼峰个案和名称空间。

正斜杠归类为命名空间:

:"blogit/post".classify #=> Blogit::Post

下划线归类为camelcase:

:blogit_post.classify #=> BlogitPost

所以在你的情况下,解决方案是:

config.objects += [ :room, :hotel, :"blogit/post", ..etc ]

或者,如果你使用ruby 2.0,你可以使用更简洁的数组符号实例化方法:

config.objects += %i(room hotel blogit/post)