2017-03-28 20 views
0

我只需要能夠使用數學來設置我的控制器中的查詢的終點。如何在控制器變量中使用數學

class WelcomeController < ApplicationController 
    def index 
    @video = Video.last 
    @videos = Video.last(7).reverse!.drop(1) 
    end 

    def show 
    @video = Video.find(params[:id]) 
    @videos = Video.where(:id => start..stop) 
    end 
end 

這行:@videos = Video.where(:id => start..stop)應該像@videos = Video.where(:id => params[:id]..params[:id]-7)因爲數組應該是在未來七年數據庫條目@video後。

我也確定有一個更好的方法來完成我想要做的事情,但我不知道它是什麼。要解決這個

+0

這是一個常見問題,大多數人使用像[will_paginate](https://github.com/mislav/will_paginate)這樣的分頁寶石來解決它。 – moveson

+0

'params [key]'總是返回一個字符串(如果該鍵不存在則返回'nil')。要執行算術運算,你必須明確地調用'to_i'。 – Aetherus

+0

@這個的代碼例子? –

回答

0

的一種方法是使用一種稱爲will_paginate的寶石,它會自動做你想怎麼解決

例子是

@videos = Video.paginate(page: params[:page] || 1, per_page: 5) 

可以從PARAMS獲取頁面,所以你的網頁有這樣的要求/videos?page=2

其他寶石在這個類別是Kaminari

+0

我真的無法弄清楚它應該如何幫助我完成我所想要的分頁試圖去做。我需要第二個變量是通過用戶點擊的鏈接後面的7個數據庫條目的數組,這是一個'Video.find(params [:id])''。雖然分頁將在稍後在另一個應用領域對我有用,但我不明白它在這裏如何適用。 –

相關問題