Форма поиска (Ransack gem)

Мне удалось получить форму поиска для работы на моем сайте "Фондовые биржевые акции" ( http://www.bargainstockfunds.com/), основываясь на примере по адресу http://railscasts.com/episodes/370-ransack. С помощью нескольких модификаций (продукт-> фонд, продукт-> фонд, продукты-> фонды) я смог заставить его работать.

В примере приложения по умолчанию отображаются ВСЕ записи из таблицы базы данных. Для моего конкретного приложения это НЕ приемлемый вариант, потому что он покрывает более 10000 фондовых фондов, и загрузка их всех на страницу занимает FAR слишком много времени.

Как получить форму поиска для отображения записей ТОЛЬКО, если количество записей меньше заданного числа? (Я имею в виду что-то вроде 200.) Если количество средств слишком велико, я хочу предоставить сообщение о чем-то вроде "Слишком много средств - пожалуйста, сузьте область поиска". Если количество средств равно 0, я хочу предоставить сообщение, в котором говорится что-то вроде "Нет средств - пожалуйста, расширьте свой поиск".

2 ответа

200 записей на странице все еще очень тихие, я надеюсь, что вы будете использовать гем will_paginate для управления этим, реализация довольно проста.

https://github.com/mislav/will_paginate/wiki

Если вы используете Ransack, вы можете вызвать такой метод.

def method
  if @search.result.count >= 200
    redirect_to root_path, notice: " Please narrow your search"
  elsif @search.result.count == 0
    redirect_to root_path, notice: "0 search results returned"
  else
   true
end

Если вы хотите запретить загрузку слишком многих, вы всегда можете вызвать метод.limit(x) для @search.result.

Надеюсь, это поможет.

Мне удалось заставить мою форму поиска работать быстро, используя драгоценный камень Kaminari для разбиения на страницы результатов. Я попробовал will_paginate, но не смог заставить его работать на меня. Полагаю, я мог бы остаться с драгоценным камнем will_paginate, но Railscast освещал Kaminari совсем недавно, а не will_paginate. Учитывая, насколько привередливыми могут быть Ruby on Rails и насколько устаревшими могут быть детали старых процедур, я решил использовать Kaminari.

Другие вопросы по тегам