Я пытаюсь получить имя класса объекта. Когда я попытался использовать const_get, я получаю всю структуру таблицы модели. Поэтому я использовал следующий код.Извлечение имени класса из объекта в Ruby
Код
def classname(object)
return object.class.to_s.split("(")[0]
end
def classrating(object_id)
classtype = classname(object_id)
return classtype
end
Script/Консоль
>> q = Question.new
=> #<Question id: nil, question_info: nil, profile_id: nil, rating: nil, created_at: nil, updated_at: nil>
>> Question.classname(q)
=> "Question"
>> Question.classrating(Question.classname(q))
=> "String"
>> q.class
=> Question(id: integer, question_info: string, profile_id: integer, rating: integer, created_at: datetime, updated_at: datetime)
Как вы можете видеть, когда Question.classname называется, он возвращает вопрос и, когда тот же вход я назвал Вопроса .classrating, он возвращает String. Я просто возвращаю тот же результат из Question.classname.
Не могли бы вы рассказать мне, что я делаю неправильно, что значение изменилось.
Спасибо.
Спасибо большое :) – felix