ActiveRecord:: Relation, любой способ удалить существующий лимит и смещение?

Предполагая, что у меня есть модель User

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

Есть ли способ сделать paged_user User.scoped удалением предела и смещения? IE:

all_user = paged_users.remove_limit.remove_offset

Ответ 1

Я думаю, у вас есть такая область:

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

С учетом этого...

Чтобы удалить limit pass nil до limit:

users.limit(nil)

Затем, чтобы удалить упорядочение, используйте reorder, также передавая его nil:

users.limit(nil).reorder(nil)

Это удалит как ограничение, так и порядок из вашей области действия, сохранив все остальные вещи. Если бы вы использовали unscoped, он удалил бы все области охвата.