:轨道中的常量符号

时间:2009-03-06 11:59:49

标签: ruby-on-rails

Rails中是否有将符号转换为常量的方法?我希望能够做类似

的事情
:monkey.to_constant #=> Monkey

目前我必须做

:monkey.to_s.camelize.constantize

这有点拗口。

1 个答案:

答案 0 :(得分:6)

class Symbol
  def to_c
    self.to_s.camelize.constantize
  end
end

:monkey.to_c

更新了Rails> = 4

从Rails开始> = 4 .classify.camelize

更好用
# .camelize with singular and plural symbols/strings
:user.to_s.camelize.constantize
# => User
:users.to_s.camelize.constantize
# => NameError: uninitialized constant Users

# .classify with singular and plural symbols/strings
:user.to_s.classify.constantize
# => User
:users.to_s.classify.constantize
# => User