2010-05-30 6 views
0

Worker와 Project의 두 모델이 있으며 연관을 통해 has_many와 연결됩니다.연관을 통해 has_many를 사용할 때 레코드 찾기

나는 다음과 같은 코드를 작성하여 특정 근로자에 ​​관련된 모든 프로젝트 찾기 위해 관리 :

worker=Worker.find_by_id("some_id") 
worker.projects 

을하지만 난 프로젝트 모델 I의 활성 프로젝트 (로 얻을 프로젝트를 원하는 내가

worker.projects(:status_id=>'active') 

처럼 뭔가를 시도 상태 필드)

을 가지고 있지만 나를 위해 작동하지 않았다.

누군가 내가 이것을 어떻게 할 수 있는지 말해 줄 수 있습니까?

+0

@piemesons : 필자는이 특정 구문의 점이 필요할 경우 문서에서 간단히 찾아보기가 어렵다고 생각할 수 있습니다. 어려움은 그 관계가 오리 타이핑을 사용한다는 사실에 의해서만 만들어지며'# all' 방법이 존재한다는 것이 거의 놀랍습니다. – Matchu

답변

1

시도 :

worker.projects.all(:conditions => {:status_id => 'active'}) 
1
worker.projects.all(:conditions => {:status_id => 'active'}) 

가 작동합니다. (답장 후 편집 된 답변)

+1

그들은 사실, 다르게 행동합니다. '# find'는 실패하면 예외를 던지고,'# find_by_id'는 실패하면 nil을 반환합니다. – Matchu

+0

오 감사합니다. 내 대답 편집 중 ... –

관련 문제