객체의 클래스 이름을 검색하려고합니다. 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
스크립트/콘솔 Question.classname가 호출
>> 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)
당신이 볼 수 있듯이,이 질문과 같은 입력 내가 질문에서 호출 할 때를 반환 .classrating, 그것은 String을 반환합니다. Question.classname에서 동일한 결과를 반환하고 있습니다.
내가 뭘 잘못하고 가치가 바뀌는 지 말해 줄 수 있습니까?
감사합니다.
대단히 감사합니다. :) – felix