2012-03-14 22 views
10

Giả sử tôi có một mô hình UserActiveRecord :: Quan hệ, bất kỳ cách nào để loại bỏ giới hạn và bù đắp hiện tại?

paged_users = User.scoped.limit(2).offset(3) 

Có cách nào để làm cho paged_userUser.scoped bằng cách loại bỏ giới hạn và bù đắp? IE:

all_user = paged_users.remove_limit.remove_offset 
+0

"User.scoped.limit (2) .offset (2) .limit (100000) .offset (0)" Tôi có thể thêm 1M giới hạn và 0 offset, nhưng tìm kiếm thay thế. – allenhwkim

+0

Vui lòng định dạng mã của bạn trong các câu hỏi của bạn bằng cách sử dụng thụt lề bốn dấu cách. Ngoài ra: không cần phải ký tin nhắn của bạn. –

Trả lời

28

Tôi đang nghĩ đến bạn có một phạm vi như thế này:

users = User.where("something").limit(20).order("name ASC") 

Với điều này trong tâm trí ...

Để tháo limit qua nil-limit:

users.limit(nil) 

Sau đó, để xóa yêu cầu, sử dụng reorder, cũng đi qua nó nil:

users.limit(nil).reorder(nil) 

Điều đó sẽ loại bỏ tất cả các hạn chế và các đơn đặt hàng từ phạm vi của bạn, giữ gìn tất cả những thứ khác. Nếu bạn đã sử dụng unscoped, nó sẽ xóa tất cả các phạm vi.

+1

cảm ơn. nó tuyệt vời – allenhwkim

+0

Đối với tôi "users = users.limit (nil)" đã hoạt động. – bhupinder

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