2012-01-31 2 views
0

У меня возникли проблемы с моим столом в рубине. Я разрешаю пользователю искать класс с помощью префикса или заголовка, поэтому он отправляет их на страницу found_by_prefix или found_by_title, и мне нужно использовать find_all_by_prefix(params[:prefix]). Поэтому, когда я это сделал, я получил сообщение об ошибке, поэтому я исследовал его и обнаружил, что использование <%[email protected](&:prefix).join(', ')%> приведет ко всем курсам, найденным в моей таблице, но оно будет помещать только все результаты в одну строку. Я просто хочу знать, как сделать 4 строки для 4 результатов!ОШИБКА при использовании find_all_by Ruby

Контроллер:

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><%[email protected](&:id)%></td> 
<td><%[email protected](&:prefix).join(', ')%></td> 
<td><%[email protected](&:number).join(', ')%></td> 
<td><%[email protected](&:title).join(', ')%></td> 
<td><%[email protected](&:section).join(', ')%></td> 
</tr> 
</table> 
+0

Читайте это: http://guides.rubyonrails.org/active_record_querying.html – shibly

ответ

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

Смежные вопросы