2010-05-01 37 views
5

Tôi đang sử dụng will_paginate làm chuẩn nhưng chỉ hiển thị các điều khiển phân trang (< 1 2> v.v) khi có nhiều trang hiển thị. Thông thường, đây sẽ là những gì được mong muốn, nhưng tôi muốn xem các điều khiển phân trang (cho tính nhất quán UI và để có được một quirk CSS khó chịu trong hệ thống tôi đang làm việc) ngay cả khi chỉ có 1 trang để hiển thị (hiển thị < 1 >).Hiển thị phân trang chỉ với một trang bằng cách sử dụng will_paginate

Điều này có khả thi không?

Trả lời

5

Các helper will_paginate mặc định trả nil khi chỉ có một trang, vì vậy bạn có thể làm một cái gì đó như thế này:

<%= will_paginate(@records) || your_single_page_state_html %> 
+1

này cảm thấy một chút bẩn với tôi - có thể bởi vì nó cần phải được lặp đi lặp lại cho mỗi trang có phân trang. Thật không may, nó thực sự là giải pháp tốt duy nhất. WillPaginate làm cho quyết tâm của nó hiển thị dựa trên 'WillPaginate :: ViewHelpers.total_pages_for_collection', mà bạn không thể thay đổi mà không ảnh hưởng xấu đến hành vi của plugin. Tôi đoán nếu bạn cần làm điều này cho nhiều trang được phân trang, bạn có thể giải nén nó thành một phương thức trợ giúp: 'def paginate_always (records); will_paginate (hồ sơ) || some_html; kết thúc'. –

+0

Đó là một cách sạch hơn để làm điều này - cảm ơn rất nhiều! :) –

Các vấn đề liên quan