2010-01-31 5 views
4

일반적인 기본 키 id을 사용하여 레일즈 모델에 액세스하고 있습니다. 그러나 메서드에서 액세스 할 때 다음과 같은 경고 메시지가 나타납니다.레일 기본 ​​키 및 개체 ID

Object#id will be deprecated; use Object#object_id 

개체 ID와 모델의 기본 키가 혼동스러워 보입니다. 그것의 필드를 사용하여 확인하는 방법이 있습니까 id?

답변

5

.id이라는 객체는 실제로 ActiveRecord 모델이 아닌 것처럼 들립니다. .id이 곧 비추천 버전 인 Object#object_id 인 Ruby 객체에 대한 경고 만보아야합니다.

그러나, 액티브 모델 필드의 기본 키에 액세스하는 또 다른 방법은 model.attributes['id']은 그래서 당신은 그것을 시도 할 수있다.

2

mikej가 가리키는 것처럼 액티브 레코드가 아닌 경우 id을 호출했습니다. 확인하려면 check out the object's class by using obj.class.

그러나 오리 유형 입력 클래스는 중요하지 않습니다 ... 객체가 다른 클래스라고 생각하지 않는 한 유의하십시오.