I have a simple calendar application.
Models:
class Day < ActiveRecord::Base self.primary_key = "sdate" has_many :items, foreign_key: :sdate end class Item < ActiveRecord::Base belongs_to :day, :foreign_key => :sdate belongs_to :calendar end class Calendar < ActiveRecord::Base has_many :items end Requirements: Fetch ALL rows of days within a certain date range. Fetch associated rows of items with certain Calendar-IDs.
With SQL I could use the following query:
SELECT * FROM days LEFT OUTER JOIN ( SELECT * FROM items WHERE calendar_id IN (1, 4) ) AS items ON days.sdate = items.sdate WHERE days.sdate BETWEEN '2015-03-01' AND '2015-03-31'; I have tried several ways in Rails but I couldn't find a solution.
How can I do this in Rails 4? Eager loading would be great.