Вложенные маршруты нужны только для действий index
, когда родительский объект обнаружил коллекцию ресурсов.В противном случае речь идет о SEO.Большинство пользователей не заметят, как генерируются их URL, и не заботятся о них, поэтому все дело в поисковых системах.Я вижу, куда вы идете, но будет больше работы, чтобы не генерировать маршруты, так как соглашение в этом примере перечисляет ресурс с одной строкой кода.И, конечно, вы уже знаете это, но это только мой взгляд на вещи.
a) forms_path #if you want to find all forms
b) topics_path #if you want to find all topics #possible use, maybe in a tag listing.
c) posts_path #if you want to find all posts #probably never use
Вы, вероятно, никогда не захотите найти все темы и особенно сообщения, но это будут способы использования.
d) form_topics_path(form) #find all topics of a given form
e) form_topic_path(form, topic) #only find one topic on a give form
f) topic_path #find a given topic
В последних двух, e и f, форма не нужна, так как вы знаете, какую тему вы хотите.Если вы беспокоитесь о SEO и хотите, чтобы ваши URL были хорошими для поисковых систем, то, вероятно, захотите использовать e.
g) form_topic_posts_path(form, topic) #I'm already confused
h) form_topic_post_path(form, topic, post) #still to deep
i) topic_posts_path(topic) #most rails people think two levels is deep enough
j) topic_post_path(topic, post) #might be good for seo
Это действительно вопрос SEO и сохранения ваших URL дружественными, кроме вложенного ресурса, которому нужен их родительский идентификатор.чтобы найти соответствующие сообщения, такие как пропуск form
для поиска связанных тем и пропуск topic
для поиска соответствующих сообщений.
Если вы используете topic_path
, topics_path
post_path
,post_path
вы упускаете из виду лучшие URL, но с точки зрения лучшего URL для двигателей, которые читаются, но они действительно не нужны.
С точки зрения не генерации маршрутов, на самом деле спрос на это не существуетпотому что это усложнит задачу, чем просто объявить ресурс в одной строке, где конечная цель - просто ведение домашнего хозяйства.