Method: Panda::Associations::ClassMethods#has_one

Defined in:
lib/panda/modules/associations.rb

#has_one(relation_name) ⇒ Object Also known as: belongs_to



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/panda/modules/associations.rb', line 9

def has_one(relation_name)
  # for example creates : @video ||= VideoScope.new(self)

  define_method relation_name do
    param_id = "#{relation_name}_id"
    if instance_var = instance_variable_get("@#{relation_name}")
      instance_var
    else
      @associations ||= []
      @associations << relation_name
      instance_variable_set("@#{relation_name}",
        Panda::const_get(relation_name.to_s.capitalize).find(send(param_id.to_sym)))
    end
  end
end