2014-01-05 3 views
1

Я хотел бы отобразить любое количество элементов, которые были найдены и возвращены пользователю. В моей базе данных есть 4 элемента. Функция поиска работает нормально. То, что я сейчас хочу отображать, - это любое количество записей. Если пользователь выполняет поиск «aI», возвращается 2 элемента, и я хочу отобразить текст, в котором обнаружено 2 элемента. Я попытался сделать это в представлении -> layout -> application.html.erb.Ruby on Rails: Показать Количество найденных результатов поиска

+0

Как вы визуализируете представление после поиска? – vee

+1

вставьте код контроллера и вид, в котором вы печатаете номер записи –

ответ

5

Вы должны посчитать фактические результаты. Продукт (с капиталом p) всегда будет возвращать все объекты этого класса в базе данных. Следовательно, сохраните результат в ivar (@products), и вместо этого подсчитайте количество звонков на вашем экране.

В контроллере

@products = Product.fuzzy_search2(params[:search_string]) 

В View

<% if @products %> 
<span> <%= @products.count %> Books Found</span> 
<% end %> 
+0

, вы хотите обновить результат с помощью @result на вид –

+0

просто сделал это. Thx – Max

+0

, так что один голос подходит для вас :) –

2

Я предполагаю, что вы сохраняете результаты поиска в качестве Ивар. Вам нужно позвонить .count на этот ivar или .size/.length, если он хранится в массиве. Проблема в том, что когда вы звоните Product.count, вы всегда получаете счет всех продуктов в своей базе данных, потому что это именно то, что вы говорите.

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