자연스러운 ActiveRecord 관계로 갖고 싶은 약간 복잡한 쿼리가 있습니다. 현재 @ calendar.events와 @ calendar.shared_events를 호출하고 배열을 결합하고 정렬합니다. 통합이 SQL로 할 수있다 :ActiveRecord 관계에서이 sql 쿼리를 어떻게 표현 하시겠습니까?
SELECT calendar_events.* FROM calendar_events left outer join calendar_events_calendars on calendar_events_calendars.calendar_event_id = calendar_events.id where calendar_events.calendar_id = 2 or calendar_events_calendars.calendar_id = 2
하지만 나는 액티브 관계로 이것을 표현하는 방법을 모르겠어요. 사용자 지정 SQL 찾기를 사용할 수 있지만 결과에 범위를 사용할 수 있기를 바랍니다.
현재 이벤트가 하나의 일정에 속하고 또한 조인 HABTM를 통해 많은 다른 달력에 속하는 테이블 :has_and_belongs_to_many :shared_events, :class_name => 'CalendarEvent', :order => 'beginning DESC, name'
has_many :events, :class_name => 'CalendarEvent', :dependent => :destroy, :order => 'beginning DESC, name'
모든 포인터는 크게 감상 할 수있다 :)
그것은 좋은 질문이다. 각 일정은 하나의 일정에 속하지만 다른 일정에 연결할 수 있습니다. 나는 has_many : through를 수행 할 수 있었고 이벤트가이 달력에 의해 소유되었는지 여부를 나타 내기 위해 조인 테이블에 부울 열의 일종을 설정했지만 너무 섬세하게 보였다. 이벤트가 하나의 캘린더에 속한 것이 분명하며, 필요한 경우 다른 사람들과 연결할 수도 있습니다. 나는 그것이 새로운 사건을 문제가되게 만들 것이기 때문에 activerecord가 그런 관계를 허용 할 수없는 이유를 이해한다. –
고마워. :) 나는 그렇게하기 위해 열심히 노력했다. 그러나 결국 나는 당신 자신의 길로 가야했다 :) 실제로 suprisingly 히 쉬웠다! 캘린더에 이벤트를 할당하는 프로세스를 제외하고. 나는 그 목적을 위해 또 다른 질문을 만들었습니다. –