module YamlEnumeration::Association
Public Instance Methods
belongs_to_enumeration(enumeration, options={})
click to toggle source
# File lib/yaml_enumeration/association.rb, line 4 def belongs_to_enumeration(enumeration, options={}) class_name = options[:class_name] ? options[:class_name] : enumeration define_method(enumeration) do local_instance = self.instance_variable_get("@#{enumeration}") local_id = send("#{enumeration}_id") if local_instance && local_instance.id == local_id local_instance else self.instance_variable_set("@#{enumeration}", local_id && class_name.to_s.classify.constantize.find_by_id(local_id)) end end define_method("#{enumeration}=") do |instance| send("#{enumeration}_id=", instance.try(:id)) end end