2012-01-31 2 views
0

첨부 파일이 연결된 객체 인 리소스이 있습니다. 내가 resource.attachments을 호출하면 리소스에 첨부 파일이 없다는 의미의 빈 배열 []이 표시되지만 첨부 파일의 객체 또는 클래스 이름을 가져 오려고합니다. 첨부 파일은 리소스 클래스의 중첩 리소스가 아니라 habtm 연결을 통해 연결됩니다.해당 값에서 모델 클래스 이름을 찾는 방법

답변

1

당신은 객체의 클래스에 .name를 호출 할 수 있습니다 :이 순수 루비이고 레일 및 HABTM에 관한 아무런 관계가 없다는 것을

resource.attachments[n].class.name 

참고. 당신이 당신의 빈 배열에 .class.name 호출 할 수있는 방법으로

, 당신은 일부 개체가해야 할이 단체 검색 같은

+0

그러나 resource.attachments는 []를 반환하고 resource.attachments.class는 배열 – user1069420

+0

을 반환합니다. 첨부 파일이 없으면 찾고있는 유형이 무엇입니까? 그리고 각각의 리소스가 오직 하나의 타입의 애착을 가질 수 있다면, 당신은이 타입을 동적으로 얻을 필요가 없습니다. 그냥'Resource' 필드의 어딘가에 저장하고, 리소스를 읽을 때 가져옵니다. –

1

당신은 액티브 :: 반사를 사용할 수 있습니다.

Resource.reflect_on_all_associations 

Resource.reflect_on_all_associations.collect!(&:name) 
0 :

또는

Resource.reflect_on_all_associations(:has_and_belongs_to_many) 

는 모든 관련 클래스 이름을 얻으려면

건배.

관련 문제