Я изо всех сил пытаюсь разработать/запросить мой db в новом приложении Rails. Это то, что я имею в месте прямо сейчас:Есть ли лучший способ структурировать эти таблицы базы данных?
documents:
title
has_many :document_sections
document_sections:
belongs_to :document
habtm :resources
resources_document_sections:
belongs_to :resource
belongs_to :document_section
resources:
text
Так легко сказать document_section.resources
. Но document.resources
дает мне неприятность
Единственным способом я нашел, чтобы сделать это до сих пор, чтобы собрать документ раздел идентификаторов, а затем запустить второй запрос:
d = Document.last
s_ids = d.document_section_ids
Resource.joins(:document_sections)
.where(document_sections: { id: s_ids })
.uniq
Так что начинается плохо, и ухудшается по мере усложнения запросов. Это становится настоящей головной болью каждый раз, когда приходится прикасаться к этим отношениям.
Мне интересно, есть ли другой шаблон, который я мог бы проследить при выкладке этих таблиц, так что запрос против них не является такой головной болью? Или есть лучшая стратегия запросов, которую я пропускаю?
К сожалению о том, что я забыл добавить в 'has_many' на документе. «Has_many: through» делает именно то, что я хочу, хотя ... Я удивлен! По какой-то причине я думал, что это не будет отслеживать отношения «многие-ко-многим». Благодаря! – Wheeyls