Will_Paginate возможно ли позволить пользователю выбрать количество постраничных записей? - PullRequest
0 голосов
/ 26 октября 2010

У меня есть разбитый на страницы список и поле выбора чисел, показывающее, сколько страниц отображать. Когда пользователь выбирает значение, я хочу, чтобы экран обновлялся с измененным списком.

Просмотр:

<%= select_tag :paginate_size, options_for_select([['Display: 5', 5],['Display: 10',10],['Display: 20', 20],['Display: 30', 30],['Display: 50', 50],['Display: 100',100]]), :onchange => remote_function(:url => {:action => :show_my_entries}, :with =>"'paginate_size='+value")%>

Когда я выбираю значение, в журнале я вижу, что вызывается функция show_my_entries и отправляется параметр paginate_size.

В контроллере я установил переменную per_page, как показано ниже, однако выбор чего-либо в списке не обновляет экран с новым размером списка:

def show_my_entries
 if (params[:paginate_size].nil?)
      paginate_size = 8
    else
      paginate_size = params[:paginate_size]
    end

    @entries = Entry.find_all_my_entries_by_pub(session[:publication_id], session[:user_id])

    @entries_paginate = Entry.paginate :page => params[:page], :order => 'title', :per_page => paginate_size, :conditions => "publication_id = " + session[:publication_id].to_s + " AND writer_id = " + session[:user_id].to_s

    render :layout => "dashboard"

  end

1 Ответ

0 голосов
/ 26 октября 2010

В remote_function отсутствует параметр :update, который должен указывать на идентификатор элемента HTML, содержащего список записей.

Итак, если содержимое, например, сделано так:

<div id="my_entries">
   <%= print_entries_list %>
</div>

Ваша дистанционная функция должна быть такой:

remote_function(:update => "my_entries", :url => {:action => :show_my_entries}, :with =>"'paginate_size='+value")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...