У меня есть 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
Благодаря братан! Оно работает! –
Когда я нажимаю на страницу 2, url показывает: .../search? Company = & location_id = & page = 2 & title = & utf8 =% E2% 9C% 93, а результат страницы страницы 1 результат ... почему это происходит? –
Я думаю, что проблема в этом месте: **: page => @ page **. Где переменная @page? Вероятно, вы должны отправить эту переменную, когда вы вызываете метод ** search ** класса Post. – chumakoff