ruby-on-rails - rails : How do I convert a symbol to a class

标签 ruby-on-rails

给定 rails 中的一个符号,我如何获得一个类?所以我可以调用类似的东西:

give_class(:post).find(:all)

或类似。

最佳答案

首先,转换为字符串。

class_name = symbol.to_s

从那里,您需要使用 ActiveSupport's Inflector 提供的方法将字符串格式化为正确的类名。 .
  • camelize会转'my_module'进入 'MyModule'
  • classify会转'my_models'进入 'MyModel'
  • camelize鉴于您的代码片段,更有可能是您想要的。

    然后使用 constantize方法:
    klass = class_name.constantize
    

    优雅!

    关于ruby-on-rails - rails : How do I convert a symbol to a class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2164218/

    相关文章:

    ruby-on-rails - 无论支架宽度如何,都强制我的 div 扩展

    ruby-on-rails - 如何在 guard for rspec 中运行单个测试?

    ruby-on-rails - 指定要与 git merge 的文件夹

    ruby-on-rails - 生产环境错误

    css - 根据 Rails 中的当前页面更改 CSS?

    ruby-on-rails - 抓取包含文本 nokogiri xpath 的元素

    ruby-on-rails - 如何处理 xor 条件、rails、外键和 sqlite 数据库?

    ruby-on-rails - 启动和运行 Rails 的最快方法是什么

    ruby-on-rails - Rails -v 在 Mac OSX 上说错误的 rails 版本

    ruby-on-rails - Rails has_many :through sum attribute on "child objects" --> SQL Toughy