【发布时间】:2015-03-25 08:25:55
【问题描述】:
当一个模型的标准“show.html.erb”基本上只列出另一个模型的has_many 时,rails 应用程序的标准做法是什么? “子”模型没有 index,因为没有其“父”模型的上下文,它们的列表将毫无用处。
创建 /parents/1/children/1 感觉是正确的做法(尤其是在 API 方面),但在 /parents/1 页面上只有一个“继续”的按钮。 ..再一次,没用。
我是否像上面那样创建单独的路由,纯粹是为了 API,还是我错过了一种更清洁、更“Railsy”的方式。
编辑
我不确定以上是否完全清楚。如果我有一个完全由Questions 组成的Exam,那么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 操作;但在上面的例子中,这感觉很奇怪。
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 nested-resources