Will_Paginate是否可以让用户选择分页记录的数量?

时间:2010-10-26 12:19:36

标签: ruby-on-rails

我有一个分页列表,以及一个显示要显示的页数的选择框。当用户选择一个值时,我希望屏幕用调整大小的列表刷新。

查看:

<%= 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 :(得分:0)

您错过了:update中的remote_function参数,该参数应指向包含条目列表的HTML元素的ID。

因此,如果内容是,例如,这样做:

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

你的远程功能应该是这样的:

remote_function(:update => "my_entries", :url => {:action => :show_my_entries}, :with =>"'paginate_size='+value")