【问题标题】:How can I list a model when it belongs to a another model in rails?当一个模型属于 Rails 中的另一个模型时,如何列出它?
【发布时间】:2016-07-02 02:57:25
【问题描述】:

我有两个模型:Day 和 Lecture,lecture 属于 day 并且 day 有很多讲座,我想列出每天的所有讲座:

<% @days.each do |day| %>
<tr>
  <td><%= day.name %></td>
  <td><%= day.date %></td>
  <td><%= link_to 'Destroy', day_path(day),
                method: :delete,
                data: { confirm: 'This will delete all the lectures in this day. Do you want to continue?' } %></td>


  <br/>
  <%= render @day.lectures %>
  <br/>
</tr>

但它不适用于“@day.lectures”。

顺便说一句,我已经有了 _lecture.html.erb 文件,应该是怎么写的问题。如果没有,我可以提供我的路线或更多信息。谢谢!

【问题讨论】:

  • 它应该是 day.lectures 因为你在带有 day 变量的迭代器内
  • 是的,但这只是一个例子
  • 什么意思,不起作用?
  • 您应该提供适当的错误,尤其是如果您不提供实际代码而“只是一个示例”...该错误应该向您显示它试图在哪些目录中找到应该解决的文件你的问题。
  • 这里没有错误..还没有。我只是不知道如何在另一个模型(2)的迭代下迭代一个模型(1),而模型1属于模型2。

标签: ruby-on-rails ruby routes


【解决方案1】:

从您的 @day 实例中删除 @ 以便该行是

<%= render day.lectures %>

您在 @days 的迭代中,并且每一天都被引用为 day

【讨论】:

  • 这是合理的,但是当我运行它时,它会出现:ActionView::MissingTemplate in Day#index.我已经有了_lecture.html.erb
  • 上面的代码你是在哪个文件里写的?您要查看的页面的网址是什么?
  • 以上代码在'day/index.html.erb'中; 'lecture/_lecture.html.erb' 用于渲染;尝试查看:localhost:3000/days
  • 视图目录中的文件夹应该是复数形式:days/index.html.erb & lectures/_lecture.html.erb。类似于控制器的命名方式(也是复数)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多