Paginado y Ransack en la parte del controlador y su vista, formulario para la busqueda https://github.com/activerecord-hackery/ransack
<%= paginate @$Variable$ %>
<%= search_form_for @q do |f| %>
<%= f.label :$field$_cont %>
<%= f.search_field :$field$_cont %>
<br />
<%= f.submit class: 'btn btn-default' %>
<% end %>
@q = $Modelo$.ransack(params[:q])
@$Variable$ = @q.result(distinct: true).order("created_at DESC").page(params[:page]).per(20)