Простой ответ, что вы не нужно, но вы, возможно, захотите. Это немного зависит от того, как вы собираетесь использовать свою модель - если вы хотите иметь доступ к каждому концу отношений от другого, то вам может понадобиться. Поэтому, если вы хотите иметь доступ к проекту напрямую с TimeEntries.Project
, тогда вам может понадобиться его, если вы с удовольствием пройдете через TimeEntries.Task.Project
, тогда вам не нужны явные отношения, которые могут еще больше осложнить ситуацию.
Осознайте has_and_belongs_to_many: через который за исключением случаев, когда у вас есть много-ко-многим, используя промежуточную таблицу чисто для представления отношения поэтому посредник не нужен, это собственная модель.
Это довольно часто встречаются в двух направлениях многие-ко-многим предположив вы Взаимоотношения есть облако тегов какой-то вы могли бы иметь что-то вроде этого:
Article ArticleTag Tag
Id ArticleId Id
Title TagId Text
Text
Там одна статья может иметь много тегов, один тег может применяться ко многим статьям, поэтому вы не хотите связывать их в таблице. Таким образом, статья has_many Tags через ArticleTag.
This gives a handy summary ассоциаций в Rails.