2016-05-20 4 views
0

Я использую жемчужину will_paginate для разбивки на страницы в моем приложении. Я создал действие поиска со следующим кодом.will_paginate для результата поиска?

Контроллер

def index 
    @transactions = Transaction.all.paginate(:page => params[:page], :per_page => 10) 
end 

def search 
    @transactions = Transaction.paginate(:page => params[:page], :per_page => 10).where(:created_at => params[:from_date].to_datetime..(params[:to_date].to_datetime + 1.day)) 
end 

search.js.erb

$("#searchResult").replaceWith('<div id = "searchResult"><%=j render 'result' %></div>'); 

_result.thml.erb

<div> 
<%= @transactions.each do |f| %> 
...... 
...... 
<% end %> 
</div> 
<%= will_paginate @transactions %> 

index.html.erb

<div id = "searchResult"> 
<%= render = "result"%> 
<% end %> 

pagination.js

$(function() { 
    $(".pagination a").on('click', function(){ 
    $(".pagination").html("Page is loading..."); 
    $.getScript(this.href); 
    return false; 
    }); 
}); 

Это как-то работает для действия индекса, Аякса метод работает для ссылок, но когда я нажимаю на последней или первой страницы ссылок генерирует как LOCALHOST: 3000/контроль _ = 1463743428904 & страница = 1 также, когда я когда-нибудь ударил поиска, разбивки на страницы ссылки кидает ссылку как LOCALHOST: 3000/контроль/поиск FROM_DATE = 2016-05-18 & страница = 2 & to_date = 2016-05-20 & utf8 =% E2% 9C% 93 который должен быть как localhost: 3000/control? Page = 1. Есть ли решение для этого.

ответ

0

Вы должны определить это:

self.per_page = 10 

В модели, которую вы пытаетесь постраничной

Также вы можете попробовать ваш метод поиска, как это:

@transactions = Transaction.where(:created_at => params[:from_date].to_datetime..(params[:to_date].to_datetime + 1.day)).paginate(:page => params[:page], :per_page => 10) 
+0

Извините, но это не работает, так как я уже пробовал это. Определение self.per_page = 10 в модели - это всего лишь идентификатор, поэтому нам не нужно устанавливать значение на странице в нашем контроллере. Но моя проблема не в этом. Я проблема с URL. –

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