Rails will_paginate, как генерировать полные URL-адреса? - PullRequest
0 голосов
/ 06 февраля 2019

Я использую will_paginate в своем приложении, а ссылки на нумерацию страниц имеют ссылки вроде 'posts? Page = 2', но я хочу, чтобы они были 'http://www.fu.com/posts?page=2'. Как я могу это сделать?

1 Ответ

0 голосов
/ 06 февраля 2019

Возможно, вы захотите сделать патч по умолчанию для LinkRenderer, чтобы URL-адреса генерировались с правильными параметрами.

В url методе Rails Helpers WillPaginate у вас есть

    @base_url_params ||= begin
      url_params = merge_get_params(default_url_params)
      url_params[:only_path] = true
      merge_optional_params(url_params)
    end

, поэтому опция :only_path должна быть true.Но вы можете сделать так, чтобы merge_optional_params, который вызывается впоследствии, сделал свое дело:

module WillPaginateForceFullUrl
  def merge_optional_params(url_params)
    url_params = super
    url_params[:only_path] = false
    url_params
  end
end

WillPaginate::ActionView::LinkRenderer.prepend(WillPaginateForceFullUrl)

Вставьте этот код в инициализатор или в lib, но убедитесь, что он загружен из инициализатора.Ваши URL должны теперь содержать полный URL.

...