ОШИБКА при использовании find_all_by Ruby - PullRequest
0 голосов
/ 31 января 2012

У меня проблемы с моим столом в рубине.Я разрешаю пользователю искать класс по префиксу или названию, чтобы он отправлял их на страницу 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>

1 Ответ

0 голосов
/ 31 января 2012

Просто циклически просматривайте результаты, создавая строки для каждого из них:

<% @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, поскольку она представляет коллекцию, а не один объект модели.

...