cook has_many :mappings cook has_many :datapoints, :through mappings cook has_many :cookers, :through mappings cook has_many :sensors, :through mappings mappings belongs_to :cook mappings has_one :sensor mappings has_one :cooker mappings has_many :datapoints, :through :sensor datapoint belongs_to :sensor datapoint has_one :cook sensor has_one :type sensor has_many :mappings sensor has_many :cooks, :through :mappings cooker has_many :mappings