Single Table Inheritance

Hi, a (hopefully) quick STE question.

I am loading a bunch of surveys of various types from csv files. The
two
relevant classes for this question:

A wrapper around the loaded surveys

class Load < ActiveRecord::Base
require “fastercsv”
include FileLoader

Base survey relationship

has_many :surveys

Child relationships

has_one :head_survey
has_one :president_survey
has_many :faculty_surveys

etc etc

end

Base survey class

class Survey < ActiveRecord::Base
has_one :load
has_many :survey_responses

#factory method to generate the type of survery
def self.factory(type, params)
case type
when ‘pres’
return Board_President_Survey.new(params)
when ‘membr’
return Board_Member_Survey.new(params)
when ‘busnss’
return Business_Survey.new(params)
when ‘faclty’
return Faculty_Survey.new(params)
when ‘dev’
return Development_Survey.new(params)
when ‘head’
return Head_Survey.new(params)
else
return nil
end
end
end

So a Load has many Surveys, but there are several survey types. Three
of
the Survey types are singletons (only one survey per Load) and the other
types are has_many’s.

I have a collection of surveys already instantiated:
load.surveys

If I call:
load.head_survey

Will this reference the head_survey from the existing collection, or
will it
perform another find?