当一个模型的标准“show.html.erb”基本上只列出另一个模型的has_many
时,rails应用程序的标准做法是什么? “子”模型没有index
,因为没有“父”模型的上下文,它们的列表将毫无用处。
创建/ parents / 1 / children / 1感觉是正确的事情(特别是在API方面),然而在/ parents / 1页面上只有一个按钮说“继续”。 ..再次,没用。
我是否创建了单独的路线,如上面的路线,纯粹是为了API,或者我错过了更清洁的“Railsy”方式。
修改
我不确定上述内容是否完全清楚。如果我的Exam
完全由Questions
组成,那么Rails是否可以通过一系列问题链接到/exam/1/questions
或纯粹/exam/1
。显然,在大多数情况下API会转到/exam/1/questions
但是标准HTML页面呢?它似乎想成为/exam/1
但是对于嵌套资源,create
路由(默认情况下)会转到/exam/1/questions
路由。如果/exam/1/questions/new
路由上存在验证错误,则会在create
(/exam/1/questions
)路由上再次呈现表单;如果页面然后刷新,则会得到404错误,因为没有孩子的索引。
这一切让我相信Rails希望对大多数模型采取index
行动;但在上面的例子中,这感觉很奇怪。
答案 0 :(得分:0)
如果我理解你,你不希望路径/parents/1
出现在你的路上。因此,您应该在routes.rb
resource :parents, except: :show do
resource :children
end