Wrap text
require 'dm-validations'
require 'dm-types'
class Subject
include DataMapper::Resource
property :id, Integer, :serial => true
property :name, String, :nullable => false
has n, :enrollments
has n, :students, :through => :enrollments, :class_name => 'Student'
end
class Student
include DataMapper::Resource
property :id, Integer, :serial => true
property :name, String
property :email, String
has n, :enrollments
has n, :subjects, :through => :enrollments, :class_name => 'Subject'
validates_present :name
validates_format :email, :as => :email_address
end
class Enrollment
include DataMapper::Resource
property :id, Integer, :serial => true
property :subject_id, Integer, :index => true
property :student_id, Integer, :index => true
belongs_to :subject
belongs_to :student
end
>> subject = Subject.new :name => 'CS101'
=> #
>> subject.save
=> true
>> student = Student.new :name => 'Bill', :email => 'bill@foo.com'
=> #
>> student.save
=> true
>> enrollment = Enrollment.new :subject => subject, :student => student
=> #
>> student.enrollments <<<<< this causes the problem
=> []
>> enrollment.save
=> true
>> student.enrollments
=> []
>> student.enrollments.all
=> []
>> student2 = Student.first
=> #
>> student
=> #
>> student == student2
=> true
>> student.enrollments
=> []
>> student.enrollments.all
=> []
>> student2.enrollments.all
=> [#]
>>