направляющие: Как я преобразовываю символ в класс

Учитывая символ в направляющих, как я получаю Класс? Таким образом, я мог назвать что-то как:

give_class(:post).find(:all)

или подобный.

16
задан dpb 29 January 2010 в 18:32
поделиться

2 ответа

Сначала преобразуйте в строку.

class_name = symbol.to_s

Оттуда вам нужно будет отформатировать строку в правильном имени класса, используя методы, представленные Включение активации .

  • Camelize повернет «My_Module» в «MyModule»
  • классификация включится my_models » в myModel '

Camelize , скорее всего, вы хотите, учитывая свой фрагмент кода.

Затем используйте Метод константа :

klass = class_name.constantize

классный!

45
ответ дан 30 November 2019 в 15:43
поделиться

Я искал этот ответ в stackoverflow и не смог найти его в том виде, как я его искал, поэтому я подумал, что сам отвечу на вопросы:

Вышеупомянутый ответ был правильным, но Фактически я нашел документы, которые объясняют немного лучше:

Существует два основных метода:

  • . to_s.camelize - используется, когда у вас есть форма единственного числа (: post)
  • .to_s.classify - используется, когда у вас есть форма множественного числа (: po sts)

Отсюда вы зовете константизу, и Виола! у тебя есть свой класс.

4
ответ дан 30 November 2019 в 15:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: