ruby-on-rails - 如何将模块类名转换为 Rails 中的符号

标签 ruby-on-rails ruby rails-engines

在 Rails 初始化文件中,有一行用于配置接受符号的事件对象,如下所示:

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

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

我的问题是我使用的是定义了我想要配置的“Blogit::Post”模块类的 Rails 引擎。如何将其作为符号添加到配置数组?

最佳答案

您可以通过向 config.objects 添加下划线或正斜杠来控制字符串分类中的驼峰式大小写和命名空间。

正斜杠归类到命名空间:

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

下划线归类为驼峰式:

:blogit_post.classify #=> BlogitPost

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

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

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

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

关于ruby-on-rails - 如何将模块类名转换为 Rails 中的符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18296079/

相关文章:

javascript - rails : Form Path depends on select/options via javascript

ruby-on-rails - 为什么正则表达式不能匹配@符号?

ruby-on-rails - 从 redmine 获取 100 多个问题

mysql - 这个 SQL 语法正确吗?

sql - 非常复杂的数据库架构,如何处理呢?

ruby-on-rails - 如何获取 Rails 3 应用程序中所有引擎的列表

ruby-on-rails - 通过引擎引入的 Rails 迁移路径

ruby-on-rails - 具有嵌套命名空间的 Rails 4 引擎

jquery - Rails 选定的字段未显示在表单上

ruby-on-rails - 如何使用 cocoon gem 处理 Rails 4 中嵌套表单的数据?