:轨道中的常量符号

ing*_*esp 3 ruby-on-rails

Rails中有一个方法可以将符号转换为常量吗?我希望能够做类似的事情

:monkey.to_constant #=> Monkey
Run Code Online (Sandbox Code Playgroud)

目前我必须这样做

:monkey.to_s.camelize.constantize
Run Code Online (Sandbox Code Playgroud)

这有点拗口.

Dut*_*tow 6

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

:monkey.to_c
Run Code Online (Sandbox Code Playgroud)

已更新为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
Run Code Online (Sandbox Code Playgroud)