[RUBY-ON-RAILS] 어떻게 루비 클래스의 이름을받을 수 있나요?
RUBY-ON-RAILS어떻게 루비 클래스의 이름을받을 수 있나요?
어떻게 액티브 오브젝트의 클래스 이름을 얻을 수 있나요?
나는 가지고있다:
result = User.find(1)
나는 시도했다 :
result.class
# => User(id: integer, name: string ...)
result.to_s
# => #<User:0x3d07cdc>"
나는 문자열, (이 경우 사용자) 만 클래스 이름이 필요합니다. 그 방법이 있습니까?
나는 이것이 아주 기본적인 것을 알고,하지만 난 모두 레일 '과 루비의 문서를 검색하고, 나는 그것을 찾을 수 없습니다.
해결법
-
==============================
1.당신은 객체의 클래스에 .name을 호출 할 :
당신은 객체의 클래스에 .name을 호출 할 :
result.class.name
-
==============================
2.여기에 다니엘 Rikowski 및 pseidemann로 의견에서 추출한 정답은,입니다. 나는 정답을 찾기 위해 의견을 통해 잡초해야하는 피곤 해요 ...
여기에 다니엘 Rikowski 및 pseidemann로 의견에서 추출한 정답은,입니다. 나는 정답을 찾기 위해 의견을 통해 잡초해야하는 피곤 해요 ...
당신이 레일 (ActiveSupport)를 사용하는 경우 :
result.class.name.demodulize
당신은 POR (일반 올 - 루비)를 사용하는 경우 :
result.class.name.split('::').last
-
==============================
3.result.class.to_s 및 result.class.name 작업 모두.
result.class.to_s 및 result.class.name 작업 모두.
-
==============================
4.당신은 클래스 메소드, class.name 내부 또는 self.class.name에서 클래스 이름을 얻고 싶은 경우에 작동하지 않습니다. 클래스의 클래스가 클래스이기 때문에이, 그냥 출력 클래스 것이다. 대신, 당신은 단지 이름을 사용할 수 있습니다 :
당신은 클래스 메소드, class.name 내부 또는 self.class.name에서 클래스 이름을 얻고 싶은 경우에 작동하지 않습니다. 클래스의 클래스가 클래스이기 때문에이, 그냥 출력 클래스 것이다. 대신, 당신은 단지 이름을 사용할 수 있습니다 :
module Foo class Bar def self.say_name puts "I'm a #{name}!" end end end Foo::Bar.say_name
산출:
I'm a Foo::Bar!
-
==============================
5.내 경우에는 내가 Module1의 같은 : class_name에있어 result.class.name 같은 것을 사용하는 경우. 그러나 우리는 class_name에, 사용을 원하는 경우
내 경우에는 내가 Module1의 같은 : class_name에있어 result.class.name 같은 것을 사용하는 경우. 그러나 우리는 class_name에, 사용을 원하는 경우
result.class.table_name.singularize
from https://stackoverflow.com/questions/826210/how-do-i-get-the-name-of-a-ruby-class by cc-by-sa and MIT license
'RUBY-ON-RAILS' 카테고리의 다른 글
[RUBY-ON-RAILS] 레일의 보호 및 개인 방법 (0) | 2020.02.27 |
---|---|
[RUBY-ON-RAILS] 0보다 연관 이상의 수를 가진 모든 기록을 찾기 (0) | 2020.02.27 |
[RUBY-ON-RAILS] 루비 온 레일즈 Gemfile 및 Gemfile.lock의 차이점은 무엇입니까 (0) | 2020.02.27 |
[RUBY-ON-RAILS] 어떻게 레일에 환경과 레이크 작업에 인수를 전달하는 방법? [복제] (0) | 2020.02.27 |
[RUBY-ON-RAILS] PG 보석을 설치할 수 없습니다 (0) | 2020.02.27 |