0

我的红宝石表有问题。我允许用户通过前缀或标题搜索类,以便将它们发送到 found_by_prefix 或 found_by_title 页面,我需要使用find_all_by_prefix(params[:prefix]). 因此,当我这样做时,我遇到了一个错误,所以我对其进行了研究,发现 using<%=@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>
4

1 回答 1

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因为它代表一个集合,而不是单个模型对象。

于 2012-01-31T01:05:08.327 回答