module CsvRecord::Associations
Public Instance Methods
belongs_to(klass)
click to toggle source
# File lib/csv_record/associations.rb, line 2 def belongs_to(klass) klass_name = klass.to_s self.class_eval do self.send :attr_writer, "#{klass}_id" define_method klass do klass_name.to_class.find self.id end define_method "#{klass}=" do |value| self.send "#{klass}_id=", value.to_param end define_method "#{klass}_id" do eval("@#{klass}_id").to_i end end end
has_many(klass)
click to toggle source
# File lib/csv_record/associations.rb, line 20 def has_many(klass) self.class_eval do define_method klass do klass.to_s.to_class.where :"#{self.underscored_class_name}_id" => self.id end end end
has_one(klass)
click to toggle source
# File lib/csv_record/associations.rb, line 28 def has_one(klass) self.class_eval do define_method "#{klass}=" do |obj| obj.send "#{self.underscored_class_name}_id=", self.id obj.save end define_method klass do klass.to_s.to_class.where("#{self.underscored_class_name}_id" => self.id).first end end end