Как обновить ссылки на страницы, если они не обновляются в поисковом запросе Solr? - PullRequest
0 голосов
/ 26 марта 2012

Я использовал поиск solr и теперь добавляю нумерацию страниц через гем will_paginate.Загрузка начальной страницы работает со ссылками на страницы в нижней части веб-страницы, которые отображаются правильно и работают нормально, но когда я выполняю поиск через Solr, ссылки на страницы не обновляются .Он всегда загружает 155 ссылок на страницы для отсутствия поиска по сравнению с максимум 2 ссылками на страницы для поиска.Они сохраняют старые ссылки из начальной загрузки страницы.

books.rb:

  def self.search(query,page)
    search = Sunspot.search(Book) do
      keywords query
      paginate :page => page, :per_page => 10
    end
    search.results
  end

books_controller.rb:

  def index
    if params[:query] && !params[:query].blank?
      @books = Book.search(params[:query],:page => params[:page])
    else
      @books = Book.order_by(:title).paginate(:page => params[:page], :per_page => 10)
    end
  end

index.html.erb:

  <%= form_tag books_path, :method => :get, :remote => true, :id => "book_search" do  %>
    <div><%= label_tag :query, "Search" %> <%= text_field_tag "query", "" %></div>
    <div><%= submit_tag "Find", :class => "" %></div>
  <% end %>
  <div><%= will_paginate @books %></div>

У меня установлены драгоценные камни will_paginate и sunspot.

Спасибо

1 Ответ

0 голосов
/ 27 марта 2012

Прежде всего, вы можете сократить строку

if params[:query] && !params[:query].blank?

в

if params[:query].present?

, так как он достигнет того же самого.

Вы уверены, что используете правильную ветвь кода и не запускаете строку Book.order_by? и вы уверены, что тестируете его с другими значениями параметра page?

...