Add a GET form.
<%= form_tag posts_path, method: :get do %> <%= select_tag :limit, options_for_select([5, 10, 15, 20], selected: params[:limit] || 10) %> <% end %>
And in your controller add
@posts = @posts.per(params[:limit]) if params[:limit]
This assumes that your resource is messages, but obviously you can change it to everything you do on the page.
Of course, you need to somehow invoke the form by adding a submit button or via javascript.
Arjan source share