2016-08-11 60 views
0

在我的應用程序中,我有Post & Slide模型。 Posthas many :slides,我用nested_forms幻燈片添加到帖子Ruby on Rails - 設置每頁顯示多少圖片

我現在擁有的是,在張貼頁我可以顯示屬於帖子的所有slides

我用@post.slides.each do |slide|

通過使用#each我顯示所有同一頁上的幻燈片。我想要實現的是能夠設置每頁要顯示多少個slides

實施例:甲柱具有20滑動,我設置5滑動每一頁。它只顯示每頁5張幻燈片,下一個5等的下一個按鈕,該URL將例如是domain.com/posts-title/1,domain.com/posts-title/2等。

(I已經下一按鈕)

,而無需使用任何分頁方法是非常讚賞

+0

在您的控制器操作中分頁@' post.slides' – Emu

+1

您可能想要查看kaminari,paginator(https://github.com/amatsuda/kaminari),您將不得不更新您的發佈頁面然後使用'@ post.slides.page(params [:page])。per(5).each do | slide |'遍歷幻燈片。 – jphager2

+0

'will_paginate'可用於分頁。或者,您可以使用偏移量和限制查詢來獲得所需的輸出 –

回答

2

寶石 '雷', '0.16.3'

爲set set_peginate定義一個before_action到你的控制器中。

before_action :set_peginate 

定義set_peginate

def set_peginate 
    @per_page = params[:per_page].to_i <= 0 ? PER_PAGE : params[:per_page].to_i 
    @page  = params[:page].to_i <= 0 ? 1 : params[:page].to_i 
    end 

您需要定義一個靜態變量設置每頁記錄大小默認方法。

使用

使用雷法拼版

@slides = @post.slides.page(@page).per(@per_page) 

現在你的觀點將只得到PER_PAGE記錄例如:PER_PAGE = 20

傳遞,你需要使嵌入下面的代碼裏面你.erb

頁PAGINATE方法
+0

謝謝@Darpan。是否可以通過任何方式獲得分頁的'total_pages'計數以便能夠生成**下一個**和**上一個**按鈕? – Rubioli

+0

這個寶石將添加總頁面,並添加next和prev按鈕到您的視圖。 –

+0

謝謝。我之前使用過'Kaminari寶石'。我不想在該視圖中使用它的「paginate」,並且想要自己創造一些東西。 – Rubioli