Trong ứng dụng Rails của tôi, tôi muốn sử dụng đá quý will_paginate
để phân trang trên truy vấn SQL của tôi. Điều đó có thể không? Tôi đã thử làm một cái gì đó như thế này nhưng nó không hoạt động:Có thể kết hợp will_paginate với find_by_sql không?
@users = User.find_by_sql("
SELECT u.id, u.first_name, u.last_name,
CASE
WHEN r.user_accepted =1 AND (r.friend_accepted =0 || r.friend_accepted IS NULL)
.........").paginate(
:page => @page, :per_page => @per_page,
:conditions => conditions_hash,
:order => 'first_name ASC')
Nếu không, bạn có thể giới thiệu cách này không? Tôi không muốn phải viết phân trang của riêng mình.
Trong giải pháp của bạn, pagination được áp dụng trên các tập kết quả trả về bởi các 'find_by_sql' . Vì vậy, bạn có thể phải đối phó với một tập kết quả lớn và do đó hệ thống phải thực hiện tính toán dư thừa. –
Cảm ơn bạn đã nhập. –