Проверьте, существуют ли параметры каминари, используя ruby ​​на рельсах - PullRequest
0 голосов
/ 09 октября 2018

Я новичок в Ruby, и моя задача состоит в том, чтобы добавить нумерацию для метода get, но я пытаюсь проверить, существуют ли параметры (page) и (per_page), если они не существуют, он должен вернуть все данные вбазы данных, потому что по умолчанию kaminari возвращает только 25 страниц.

это моя функция

def index
  if page.present? && per_page.present?
    @domains = Domain.accessible_by(access_token).page(page).per(per_page)
  else
    @domain = Domain.accessible_by(access_token).all
  end
  render json: @domain
end

при этом возвращает ответ 200 OK, но ноль

1 Ответ

0 голосов
/ 09 октября 2018

Метод контроллера получает параметры запроса через объект params.Переменные page и per_page не определены, что вызовет исключение undefined local variable, etc..

Еще несколько вещей:

  • Я предполагаю, что переменная @domain является опечаткой иВместо этого следует использовать @domains.
  • Поскольку оба выражения if fork возвращают значение, присваиваемое переменной @domains, его можно упростить.

Подводя итог,Вот улучшенный метод контроллера:

def index
  @domains = if params[:page].present? && params[:per_page].present?
               Domain.accessible_by(access_token)
                     .page(params[:page])
                     .per(params[:per_page])
             else
               Domain.accessible_by(access_token).all
             end

  render json: @domains
end
...