1

У меня есть модель под названием «Курс», которая должна быть связана с экзаменами и заданиями. Я хочу, чтобы иметь возможность писать код, как это:Рельсы наследования одиночного стола has_many

>>c = Course.new 
>>assignment1 = c.assignments << Assignment.new 
>>exam1 = c.exams << Exam.new 

c.assessments должны теперь включать в себя как exam1 и assignment1

Как я думаю, что это должно быть выполнено (с использованием одного таблицы наследования от модели оценки):

class Course < ActiveRecord::Base 
    has_many :assessments 
    attr_accessible :title, :name, :startDate, :endDate, :color 
end 

class Assessment < ActiveRecord::Base 
    belongs_to :course 
    attr_accessible :end_at, :name, :start_at, :type, :weight 
end 

class Assignment < Assessment 
end 

class Exam < Assessment 
end 

Я пробовал изо всех сил, чтобы узнать, как это сделать, но я не могу понять это. Любая помощь будет оценена по достоинству.

ответ

1

Курс имеет только assesments ассоциации, так что вы должны быть в состоянии написать такой код:

c = Course.new 
c.assesments << Assignment.new 
c.assesments << Exam.new 

Также убедитесь, что таблица assesments имеет тип столбца с типом данных строки.

+1

Это похоже на мой лучший вариант. – Khodeir