Я понимаю концепцию реляционных баз данных, первичных/внешних ключей и т. Д. Однако мне не удается увидеть фактический результат настройки этих свойств в моих моделях. Создают ли они вспомогательные функции или что-то подобное? или они просто работают на уровне базы данных?В Rails, что делают ключевые слова belongs_to, has_many и т. Д., На самом деле?
Например, если у меня есть эти две модели (другие свойства опущены)
class Course < ActiveRecord::Base
has_and_belongs_to_many :schedules
has_many :sections
end
class Section < ActiveRecord::Base
belongs_to :course
end
я мог бы просто получить все разделы для любого данного курса, как это:
Section.where(course_id: 1234)
Однако, я мог бы сделать это без установления отношений вообще. Итак, мой вопрос: зачем мы это делаем?
Таким образом, вы можете получить учебные курсы. –
Они метапрограммируют магические вещи сахара. В принципе, Rails позволяет использовать все виды других методов экземпляра для модели, связанной с ассоциациями моделей, когда вы просто пишете 'принадлежит_то: курс'. –
Спасибо всем! Раньше я вручную определял методы, такие как @ course.sections, хотя они уже генерировались отношениями :) – flyingtoaster0