Есть ли способ удалить нумерацию страниц из объекта ActiveRelation? - PullRequest
3 голосов
/ 24 октября 2011

Допустим, у нас есть @posts = Post.published.per(10).page(params[:page]) где-то в нашем контроллере.Позже нам нужно обновить все опубликованные посты (Post.published).

Как убрать нумерацию страниц?

@posts.limit(false).offset(false), кажется, добивается цели, но ядумаю, что должен быть какой-то другой путь, более высокоуровневый (например, @posts.without_pagination).

1 Ответ

6 голосов
/ 24 октября 2011

Поскольку метод page предоставляется kaminari, я не уверен, что kaminari также предоставляет что-то вроде without_pagination.

Но если хотите, вы всегда можете сделать это:

class Post < ActiveRecord::Base
  def self.without_pagination
    self.limit(false).offset(false)
  end
end

или вы можете извлечь метод в модуль и включить модуль в ActiveRecord :: Base, чтобы у каждой модели был метод.

1010 * Отредактировано * Спасибо, Тфрайт, что указали. Можно использовать .except(:limit, :offset), что должно быть намного лучше для будущих посетителей. @posts = Post.publised.per(10).page(params[:page]) @posts = @posts.except(:limit, :offset)

...