will_paginate rails per page example bootstrap ruby-on-rails pagination

ruby on rails - per - ¿Rails tiene una solución de paginación integrada?



will_paginate bootstrap (4)

He notado que las gemas de paginación como mislav-will_paginate son muy populares. ¿Esto se debe a que Rails no tiene una solución de paginación integrada o porque la solución integrada no es muy buena?


En Rails 2.0, la capacidad de paginación de ActionController se eliminó y se convirtió en un complemento para la compatibilidad hacia atrás llamada ''classic_pagination''. Sin embargo, de mis búsquedas de una solución de paginación para mí mismo, el consenso parece ser que el uso de ''classic_pagination'' no es óptimo.

Después de ver un par de podcasts y después de varias recomendaciones, opté por probar el complemento will_paginate y no he mirado atrás. Es rápido, fácil de usar y bien mantenido.

Creo que incluso V2 de Searchlogic recomienda su uso.



Si utiliza Rails 3, el complemento Kaminari será muy útil para la paginación. Github Railscasts


Yo recomendaría searchlogic . Tiene paginación incorporada y muchas otras cosas.

  • Fácil filtrado
  • Paginación
  • Clasificación

Y .. para todos esos buenos ayudantes.

El código dice más que mil palabras ( no te confundas con el ejemplo de HAML, puedes usar las plantillas normales de Erb si las prefieres, el código / estructura es el mismo ):

Controlador:

def index @search = User.new_search(params[:search]) @users, @users_count = @search.all, @search.count end

Cosas de paginación en la vista:

== Per page: #{per_page_select} == Page: #{page_select}

Ordenar como / por en la vista:

- unless @users_count.zero? %table %tr %th= order_by_link :account => :name %th= order_by_link :first_name %th= order_by_link :last_name %th= order_by_link :email - @users.each do |user| %tr %td= user.account? ? user.account.name : "-" %td= user.first_name %td= user.last_name %td= user.email

Filtros fáciles, simples y rápidos:

- form_for @search do |f| - f.fields_for @search.conditions do |users| = users.text_field :first_name_contains = users.date_select :created_after - users.fields_for users.object.orders do |orders| = orders.select :total_gt, (1..100) = f.submit "Search"

Y todo funciona en conjunto, así que cambiar una página y luego la clasificación, y agregar un filtro funciona sin perder ninguna de las otras configuraciones :).

Todo lo que necesitas está en tu entorno.

config.gem "searchlogic"

e instálalo con: rake gems:install

También puedes ver el ejemplo en línea