пʼятниця, 2 вересня 2011 р.

will_paginate 3.0: Sinatra і DataMapper

Після більше року розробки вийшла фінальна версія will_paginate 3.0. Основні зміни:
  • Підтримка Rails 3.0 і 3.1
  • Підтримка Sinatra і Merb
  • Інтеграція з DataMapper і Sequel
  • Переклад із бібліотекою i18n
  • Припинена підтримка Rails версій 1.2 - 2.3
Встановлення:
gem install will_paginate
Sinatra додаток потребує наступні бібліотеки:
require 'will_paginate'
require 'will_paginate/data_mapper'  # або active_record/sequel
Вносимо зміни до дії index, щоб виводити по 5 записів на сторінку. Номер сторінки передаватиметься у рядку запиту (наприклад, http://localhost:4567/posts?page=3)
# index
get "/posts" do
  @posts = Post.paginate :page => params[:page], :per_page => 5
  haml :"posts/index"
end
Додаємо помічник will_paginate для виведення посилань на сторінки:
#header
  %h1 Мій блог

%a{:href => "posts/new"}> New Post
#content
  - @posts.each do |post|
    .container
      %h3= post.title
      %p= post.body
      %p= post.created_at

  #pagination
    = will_paginate @posts

Немає коментарів: