我在ruby中遇到麻烦。我允许用户通过前缀或标题搜索类,以便将它们发送到found_by_prefix或found_by_title页面,我需要使用find_all_by_prefix(params[:prefix])
。因此,当我这样做时,我收到了一个错误,所以我研究了它,发现使用<%=@course.map(&:prefix).join(', ')%>
会将所有课程都放在我的表中,但它只将所有结果放在一行中。我只是想知道如何为4个结果制作4行!
控制器:
def found_by_prefix
@course = Course.find_all_by_prefix(params[:prefix])
end
查看:
<table border=1>
<tr><th>id</th><th>prefix</th><th>number</th><th>title</th><th>section</th></tr>
<tr>
<td><%=@course.map(&:id)%></td>
<td><%=@course.map(&:prefix).join(', ')%></td>
<td><%=@course.map(&:number).join(', ')%></td>
<td><%=@course.map(&:title).join(', ')%></td>
<td><%=@course.map(&:section).join(', ')%></td>
</tr>
</table>
答案 0 :(得分:0)
只需遍历结果,为每个结果创建一行:
<% @course.each do |course| %>
<tr>
<td><%= course.id %></td>
<td><%= course.prefix %></td>
<td><%= course.number %></td>
<td><%= course.title %></td>
<td><%= course.section %></td>
</tr>
<% end %>
此外,您可能应该将实例变量命名为@courses
而不是@course
,因为它表示集合,而不是单个模型对象。