显示页面上的Rails索引

时间:2015-03-25 08:25:55

标签: ruby-on-rails ruby-on-rails-4 nested-resources

当一个模型的标准“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行动;但在上面的例子中,这感觉很奇怪。

1 个答案:

答案 0 :(得分:0)

如果我理解你,你不希望路径/parents/1出现在你的路上。因此,您应该在routes.rb

中指定它
resource :parents, except: :show do
  resource :children
end