Tôi muốn sử dụng một cái gì đó như find_in_batches
, nhưng thay vì nhóm các đối tượng AR được tạo hoàn toàn tức thì, tôi muốn nhóm một thuộc tính nhất định, ví dụ: id. Vì vậy, về cơ bản, một hỗn hợp của việc sử dụng find_in_batches
và pluck
:Đường ray: truy vấn thuộc tính theo đợt sử dụng AREL
Cars.where(:engine => "Turbo").pluck(:id).find_in_batches do |ids|
puts ids
end
# [1, 2, 3....]
# ...
Có cách nào để làm điều này (có thể với Arel) mà không cần phải viết OFFSET/LIMIT lý bản thân mình hoặc định kỳ để pagination đá quý như sẽ đánh số trang hoặc kaminari?
thực sự là một thử tốt. Nhưng tôi thích một giải pháp không phải khỉ, vì tôi muốn áp dụng logic đã nói trong một thư viện có thể được phân phối bởi một số dự án, và tôi muốn ít xâm phạm càng tốt liên quan đến việc tiêm mã trong AR . – ChuckE
Điểm tốt ... vì vậy hãy biến nó trở thành một phương thức lớp học. Tôi đoán lib của bạn sẽ được bao gồm trong các mô hình anyway, và nó sẽ làm việc chỉ giống như miễn là AR được sử dụng. –
Đã kết thúc bằng các phương thức AREL .limit và .offset. Tôi chỉ nói, thật tuyệt khi có một giải pháp out-of-the-box cho Rails. – ChuckE