2010-10-26 72 views
0

我有一个分页列表,和一个显示要显示多少个页面的数字选择框。当用户选择一个值时,我希望屏幕使用调整大小的列表进行刷新。Will_Paginate是否可以让用户选择分页记录数量?

查看:

<%= 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 
+0

你可以把HTML你的帮手产生?我认为一切都在里面。 – shingara 2010-10-26 12:26:52

回答

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") 
相关问题