루비

0
에서 'will_paginate'와 함께 사용하기위한 SQL 쿼리를 수정

내가 MySQL 데이터베이스에서 일부 행을 가져 오기 위해 사용하는 다음과 같은 SQL 쿼리 한 :루비

SELECT code_ver, result FROM mastertest WHERE date >= DATE_SUB((CURDATE()) , INTERVAL 90 DAY) ORDER BY date DESC; 

이 쿼리는 지난 90 일 나에게 데이터를 제공합니다 . 이제 html.erb 페이지 (보기)에 한 번에 10 일의 데이터를 표시하려고합니다. 나는 페이지 매김이 'will_paginate'와 'kaminari'보석을 사용하여 이루어질 수 있다는 것을 알고 있습니다. 그러나 위와 같이 특정 조건으로 데이터베이스를 쿼리하는 방법을 잘 모르겠습니다.

누군가이 코드를 여기에서 도울 수 있습니까?

답변

1

이것은 액티브에 그것을 만들 수있는 방법이다 : 당신이 원하는 경우 여기에서

Mastertest.where('date >= ?', Time.now - 90.days).order('date DESC').select("code_ver, result") 

, 당신은 체인 will_paginate 또는 미나리 방법, 또는 중 하나가 자신의 롤 할 수 있습니다. 이 쿼리를 많이 사용하려면 해당 쿼리를 클래스 메서드로 옮기고 싶을 수 있습니다.

class Mastertest 
    def self.last_90_days 
    where('date >= ?', Time.now - 90.days).order('date DESC').select("code_ver, result") 
    end 

    ## here's a simple pagination example: 
    def self.page(page,per_page) 
    limit(per_page).offset((page - 1) * per_page) 
    end 

end 

Mastertest.last_90_days.page(1,20) #=> [...]