Module: Associations
- Included in:
- BlocRecord::Base
- Defined in:
- lib/bloc_record/associations.rb
Instance Method Summary collapse
Instance Method Details
#belongs_to(association) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/bloc_record/associations.rb', line 23 def belongs_to(association) define_method(association) do association_name = association.to_s row = self.class.connection.get_first_row " SELECT * FROM \#{association_name}\n WHERE id = \#{self.send(association_name + \"_id\")}\n SQL\n\n class_name = association_name.classify.constantize\n\n if row\n data = Hash[class_name.columns.zip(row)]\n class_name.new(data)\n end\n end\nend\n" |
#has_many(association) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/bloc_record/associations.rb', line 5 def has_many(association) define_method(association) do rows = self.class.connection.execute " SELECT * FROM \#{association.to_s.singularize}\n WHERE \#{self.class.table}_id = \#{self.id}\n SQL\n\n class_name = association.to_s.classify.constantize\n collection = BlocRecord::Collection.new\n\n rows.each do |row|\n collection << class_name.new(Hash[class_name.columns.zip(row)])\n end\n\n collection\n end\nend\n" |