Precisávamos de uma maneira de enviar um parâmetro por página, preservando os outros parâmetros no URL:
Crie um formulário com campos ocultos
= form_tag per_page_path, method: :get, data: { behavior: 'per-page-form' }
= hidden_field_tag :page, params[:page] if params[:page]
= hidden_field_tag :order, params[:order] if params[:order]
= hidden_field_tag :direction, params[:direction] if params[:direction]
= label_tag "Per Page"
= select_tag :per_page, options_for_select([10,20,50], params[:per_page].to_i), data: { behavior: "per-page" }
Ouça a alteração do campo de seleção e envie o formulário:
$ ->
$('[data-behavior~=per-page]').change ->
form = $('form[data-behavior~=per-page-form]').submit()