【问题标题】:Rails index on show page显示页面上的 Rails 索引
【发布时间】: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


    【解决方案1】:

    如果我没听错的话,你不希望通往/parents/1 的路线在你的路上。因此,您应该在 routes.rb 中指定它

    resource :parents, except: :show do
      resource :children
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-23
      • 1970-01-01
      相关资源
      最近更新 更多