0
class Event < ActiveRecord::Base
has_many :meetings
end
class Meeting < ActiveRecord::Base
belongs_to :event
end
모든 이벤트를 검색하는 mysql 쿼리를 작성하는 방법 group_by
회의 DATE(start_at)
?연관된 객체의 속성을 기준으로 그룹화
{"2014-01-24"=>[#<Event id: , title: "First", created_at: "2014-01-24 16:02:52", updated_at: "2014-01-24 16:02:52">, #<Event id: 2, title: "Second", created_at: "2014-01-24 16:02:52", updated_at: "2014-01-24 16:02:52">], "2013-01-29"=>[#<Event id: 3, title: "Third", created_at: "2013-01-29 05:30:40", updated_at: "2014-01-29 05:30:40">], ...]}
PS : 결과
Event.inludes(:meetings).group ...
가 나는
Hash
을 얻으려면 내가
PostgreSQL
을 사용하고 지금은이 방법으로 그것을 얻을 :
hash = {}
Meeting.where("extract(month from start_at) = ?", Date.today.month).pluck('DATE(start_at)').uniq.each do |date|
hash[date] = Event.includes(:meetings).where("DATE(meetings.start_at) = ?", date).references(:meetings)
end
그러나 데이터베이스에 많은 쿼리를 생성했습니다 : (
이벤트 'has_many' meetings – zolter
관련 이벤트 (: includes)로 모든 회의를 가져 와서 결과 = Hash.new; @ meetings.each {| m | 결과 [m.start_at] || = []; 결과 [m.start_at] << m.events} – sirfilip
감사합니다! 너는 내 하루를 보냈다! – zolter