下面是我的评论.html.erb:
<% provide(:title, 'All reviews') %>
<h1>All reviews</h1>
<ol class="reviews">
<%= render @reviews %>
</ol>
<%= will_paginate @reviews %>
而my _review.html.erb看起来像这样:
<li>
<p>Student: <%= Student.find(review.student_id).name%></p>
<p>Score: <%= review.score%></p>
<p>Review: <%= review.review%></p>
<p>Created at: <%= review.created_at%></p>
</li>
我如何通过@学生以及渲染为例?
我试着在review.html.erb和
学生:〈%= student.name %〉
在_review. html. erb中。它不起作用。
2条答案
按热度按时间92dk7w1h1#
实际上,您不需要传递多个参数,只需设置评语与学生之间的关联:
第一个
为了避免N+1查询问题,您应该使用
includes
或eager_load
来载入学生的检阅:如果你真的想在呈现集合时传递额外的参数(这里不需要),你可以使用本地赋值:
这将在部分中以
foo
或local_assigns(:foo)
形式提供。pw136qt22#
在
_review.html.erb
中,不需要使用Student.find(review.student_id)