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?