: символ константы в рельсах - PullRequest
3 голосов
/ 06 марта 2009

Есть ли в Rails метод, который преобразует символ в константу? Я хочу иметь возможность сделать что-то вроде

:monkey.to_constant #=> Monkey

На данный момент я должен сделать

:monkey.to_s.camelize.constantize

что-то вроде глотка.

1 Ответ

6 голосов
/ 06 марта 2009
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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...