0
나는 다음과 같은 설정이있다. 여기에 내가 지금까지 가지고있는 것이있다 :협회, 조인 및 스코프
def self.where_user_participates(user)
Program.joins(:participants).where('participants.user_id' => user.id)
end
나는 그것이 효과가 있다고 생각하지만 나는 그것에 익숙하지 않다. 예컨대 :
def self.where_user_participates(user)
Program.joins(:participants).where('participants.user' => user)
end
어떻게이를 향상시킬 수 있습니다, 나는 아이디의 '에 대해 이야기하지만 연결을 사용하지 선호하지만, 나는 그것이 동작하지 않습니다 수 있을까? 그리고 공식적인 범위가 필요 없으며 클래스 메소드가 Rails 3에서 '베스트 프랙티스'라는 것이 사실입니까?
이'Program.joins 시도 (사용자 : 사용자)' – MrYoshiji
는 내가 그랬어, 그것은 작동하지 않았다 Hirb 오류 : SQLite3 :: SQLException : 해당 열 없음 : programs.user : SELECT "programs". * FROM "programs"INNER JOIN "participants" "참여자". "program_id"= "프로그램". "id" "프로그램". "user"= 2 – pitosalas
나쁘다 :'Program.joins (: participants) .where (참가자 : {user_id : user.id})'나는 사용자 객체를 직접 전달할 수 있다고 생각하지 않는다. 범위를 사용하여 다음을 피하십시오 :'scope : for_user, lambda {| user | (사용자 : {user_id : user.try (: id) || 사용자}''Program.for_user (user)'와 같이 사용하십시오. 여기서 "user"변수는 id (정수)) 또는 User 객체 – MrYoshiji