Вы хотите объединить модель. Я бы назвал это «CoursesYear», потому что тогда вам не нужно менять имя таблицы, но вы также можете переместить все эти данные в другую модель, если хотите. Ваши модели будут настроены так:
class Courses < ActiveRecord::Base
has_many :courses_years
has_many :years, :through => :courses_years
end
class Years < ActiveRecord::Base
has_many :courses_years
has_many :courses, :through => :courses_years
end
class CoursesYears < ActiveRecord::Base
belongs_to :course
belongs_to :year
end
Всякий раз, когда вам нужны атрибуты (в данном случае обязательные), вы обычно получаете к ним доступ через модель соединения. Если вы хотите просто найти все курсы, которые являются обязательными для данного года, ответьте на вопрос здесь .