2010-10-26 71 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") 
相關問題