Nested routes are needed only for index actions, where the resource set is found by the parent. Otherwise, itβs about SEO. Most users will not notice how their URLs are generated and do not care about all search engines. I see where you are going, but it will work more so as not to generate routes, since in this example the agreement contains a list of resources with one line of code. And, of course, you already know this, but this is just my business.
a) forms_path
You probably will never want to find all the topics and especially the posts, but these will be the routes to use.
d) form_topics_path(form)
In the last two, e and f, the form is not needed, since you know what topic you want. If you are worried about SEO and get good URLs for search engines, then you probably want to use e.
g) form_topic_posts_path(form, topic)
It really is a SEO issue and keeping your URLs apart from the embedded resource, which needs their parent id to find related posts, such as passing a form to find related topics, and pass a topic to find.
If you use topic_path , topics_path post_path , post_path , you are inferior to better urls, but in terms of improving the urls to read, but they really aren't needed.
In terms of the lack of route generation, this is actually not a requirement for this, because it will make it more difficult than simply declaring the resource in one line, where the ultimate goal is just the household.