разбить класс на страницы - PullRequest
0 голосов
/ 23 марта 2010

, пожалуйста, помогите мне с нумерацией этого метода

Мой метод такой

контроллер

#
def show
  @topic = Topic.find(params[:id]) 
  @posts = @topic.posts.find(:all ,:order=> 'id')
end

просмотров

#
%div{:style=>"margin: 0 auto;"}
  %table.sortable.style2{:cellpadding=>5}
    %thead
      %tr
        %td{:width => "25%",:align => "center",:style => "font-weight: bold;"}Posted By
        %td{:width => "75%",:style => "font-weight: bold;"}Comments
    %tbody  
      - for post in @posts 
        %tr
          %td{:align => "center"}
            &nbsp
            %div{:width=>"5px" , :style=>"border: 1px solid rgb(232, 232, 232);background-color: rgb(248, 248, 248);width: 60px; height:60px;" }
              - if post.posted_by.image 
                = image_tag(post.posted_by.image.public_filename(),:width => "60px", :height => "60px",:align=>"center")
            %div{:style => "font-weight: bold; font-style: italic;"}
              = post.posted_by ? post.posted_by.firstname : "<em>Unknown User</em>" 
              %br
            %div{:style => "font-style: italic;"}
              Posted on 
              = post.created_at.strftime('%d of %B %Y ')
              = post.created_at.strftime('at %H:%M')  
          %td{:valign => "top"}
            =post.body

1 Ответ

1 голос
/ 23 марта 2010

Нумерация страниц действительно проста с will_paginate от mislav . Прочтите инструкции по установке и пример в файле README . Пример охватывает почти точно то, к чему вы стремитесь.

Для вашего сценария вы хотите начать с редактирования класса модели Post. Укажите количество сообщений для просмотра на странице:

class Post < ActiveRecord::Base
  cattr_reader :per_page
  @@per_page = 10
end

Вы можете использовать метод paginate и для ассоциации, так что это будет работать:

@posts = @topic.posts.paginate :order => 'id'

Затем, по вашему мнению, где вы хотите показать ссылки на страницы, просто выполните:

= will_paginate @posts
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...