Как исправить "Неопределенный метод total_pages" - PullRequest
0 голосов
/ 22 апреля 2019

Я настраиваю функцию поиска в моем приложении Ruby On Rails. Я хочу, чтобы пользователи выполняли поиск по определенной теме и могли отображать результаты. Однако, если нет ожидающих результатов, должно отображаться подтверждение.

В настоящее время я пробовал исследовать и добавлять другой код, такой как добавление @topic.paginate(:page => 1, :per_page => 2) и

пытается это:

Topic.tagged_with(params[:tag]).order(created_at: :desc).page(params[:page]).per(3)

themes_controller:

def index
 if params[:search].present?
   @topics = Topic.search(params[:search]).paginate(:page => params[:page], :per_page => 5)
   flash[:notice] = "No records found based on the search." if @topics.blank?
 else
   @topics = Topic.all
   flash[:notice] = "No records found in Database." if @topics.blank?
 end
end

index.html.erb:

<div> <%= will_paginate @topic, renderer: BootstrapPagination::Rails %> </end>

Я ожидаю появления сообщения проверки. Но вместо этого у меня есть следующая ошибка:

** неопределенный метод `total_pages '

Снимок экрана с ошибкой

Я понимаю эту ошибку из-за добавляемой нумерации страниц, но не знаю, как ее преодолеть.

1 Ответ

1 голос
/ 22 апреля 2019

Возможно, проблема не в вашей нумерации страниц, а в ветке else, в которой вы не нумеруете @topics.Will_paginate не может создать ссылки для нумерации страниц.

def index
  if params[:search].present?
    @topics = Topic.search(params[:search]).paginate(:page => params[:page], :per_page => 5)
    flash[:notice] = "No records found based on the search." if @topics.blank?
  else
    @topics = Topic.all.paginate(:page => params[:page], :per_page => 5) #add this
    flash[:notice] = "No records found in Database." if @topics.blank?
  end
end
...