Module: CsvRecord::Associations
- Defined in:
- lib/csv_record/associations.rb
Instance Method Summary collapse
Instance Method Details
#belongs_to(klass) ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# 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) ⇒ Object
20 21 22 23 24 25 26 |
# 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) ⇒ Object
28 29 30 31 32 33 34 35 36 37 38 |
# 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 |