2013-12-06 17 views
0

У меня есть 2 модели, почта и местоположение, где местоположение имеет_сознания и сообщение принадлежит_о местоположению. Поиск работает отлично, а разбиение на страницы работает отлично, кроме total_entries. Это показывает более 10 записей в результатеРубин на рельсах - разбиение на страницы на результат поиска

Просмотр search.html:

<%= form_tag search_posts_path, :method => 'get' do %> 
    <p> 
     <%= text_field_tag :title, params[:title] %> 
     <%= text_field_tag :company, params[:company] %> 
     <%= select_tag :location_id, options_from_collection_for_select(Location.all, :id, :name, params[:location_id]), include_blank: true %> 
     <%= submit_tag "Search", :name => nil %> 
    </p> 
<% end %> 

Контроллер post_controller.rb:

def search 
    title = params[:title] 
    company = params[:company] 
    location_id = params[:location_id] 
    @posts = Post.search(title, company, location_id) 
    end 

Модель post.rb

def self.search(title, company, location_id) 
    if location_id.present? 

     paginate :conditions => ['title LIKE ? AND company LIKE ? AND location_id = ?', "%#{title}%", "%#{company}%", location_id], 
         :per_page => 20, 
         :order => 'created_at DESC', 
         :page => @page, 
         :total_entries => 10 

    else 

     paginate :conditions => ['title LIKE ? AND company LIKE ?', "%#{title}%", "%#{company}%"], 
         :per_page => 20, 
         :order => 'created_at DESC', 
         :page => @page, 
         :total_entries => 10     
    end 
end 

ответ

1

Параметр : per_page определяет количество записей на каждой странице. : total_entries - количество записей, которые извлекаются из общей суммы.

Я имею в виду : per_page не может быть больше, чем : total_entries

+0

Благодаря братан! Оно работает! –

+0

Когда я нажимаю на страницу 2, url показывает: .../search? Company = & location_id = & page = 2 & title = & utf8 =% E2% 9C% 93, а результат страницы страницы 1 результат ... почему это происходит? –

+0

Я думаю, что проблема в этом месте: **: page => @ page **. Где переменная @page? Вероятно, вы должны отправить эту переменную, когда вы вызываете метод ** search ** класса Post. – chumakoff

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