2017-10-06 6 views
0

식사를 할 수있는 사용자가있는 회사를 모델링 한 앱이 있습니다.ActiveRecord 관련 레코드 복구

그래서 회사 테이블, 사용자 테이블 및 점심 테이블이 있습니다. 점심에는 사용자의 ID가 포함되어 있으며 사용자는 회사의 ID를 포함합니다. current_user.company

나는 Lunch.all.where(user.company == current_user.company)과 같은 것을 갖고 싶습니다. 나는 이것이 작동하지 않을 것이라는 것을 안다, 그러나 나는 지금 막 밖으로 시작하고 나는 SQL에 조금 문제가 있고있다.

답변

1

이 하나

Lunch.joins(user: :company).where(users: {company: current_user.company}) 
0

당신이 사용 #joins을 할 수있는 시도하거나 더 쉬운 방법이있다. 당신의 회사 모델

class Company 
    has_many :users, 
    has_many :lunches, through: :users 
end 

이 설정 그리고 당신은 모든 점심 얻을 :

current_user.company.lunches 
+0

내가 솔루션이 실수를 가지고 있습니다. ActiveRecord :: HasManyThroughSourceAssociationNotFoundError : 사용자 "모델 점심"또는 점심 도시락을 찾을 수 없습니다. 'has_many : lunches, : through => : users, : source =>'을 시도하십시오. 회사, 점심 또는 명령 중 하나입니까? –

+0

사용자에게'has_many : lunches'가 있습니까? – EJ2015

+0

네, 맞춤법 오류 (점심 => 점심)가 있습니다. 이제는 작동합니다. 고맙습니다. 어떤 응답 시간이 가장 좋은지 보겠습니다. 하지만 대단히 감사합니다. -) –