2012-10-18 1 views
1

: 내 여행 모델에서has_many 조건은 나는 다음과 같은 모델이

Trip -> has_many trip_members & belongs_to user 
Trip -> has_many shares 
Share -> belongs_to user 

, 난 항상 사용자가 관련이 있도록이

has_many :shares, :conditions => proc { |user| {:user_id => user.id} } 

같은 관계를 설정하고있어 공유와. 내가 trip.shares (user)에 대한 호출에서 사용자 객체를 전달하여이 객체에 액세스하려고 시도했지만 작동하지 않는 것 같습니다. proc에 대한이 인수는 어떻게 작동합니까?

또한 조건을 설정하는 올바른 방법입니까? 인수로 전달 된 사용자를 포함하도록 생성 된 메서드 (예 : trip.shares < < 등)를 재정의하는 것이 좋겠다고 생각했습니다.

+0

대신 사용자가 'has_many : trips, : through => : shares'라고 대신 말하지 않으시겠습니까? –

+0

@CodeGnome 조금 다릅니다. 사용자가 여행을 만들지 만 많은 trip_members가 있으며 각 trip_member는 n 명과 여행을 공유 할 수 있습니다. 여행 회원과이 여행이 공유되는 사람들은 동일하지 않습니다. 나는 시도하고 더 명확하게 내 질문에 – hashpipe

답변

0

조건은 연결된 개체를 만드는 동작을 변경하지 않습니다. 데이터베이스에서 쿼리 된 결과 만 제한합니다.

+0

확실합니까? 나는 또한 당신이 창조 할 때 조건이 또한 그림에 올랐다 고 생각했다. 네가 언급 한 finder_sql의 일이 아닌가? 나는 실제로이 조건을 모든 코드 조건에 포함시킬 수 있기를 원합니다. 주위에 어떤 방법으로? – hashpipe

+0

내가 이해하는 것은 조건을 충족시키지 못하는 협회에서 회원을 만들 수 있다는 것입니다. 나는 창조에 영향이 있다고 생각하지 않는다. –

+0

레일 가이드에서 해시 조건은 작성 및 빌드 작업 중에도 사용된다는 점을 언급합니다. 물론 모델을 거쳐야만 가능합니다. 나는 여기에서 길을 잃었다! – hashpipe