为什么will_paginate gem会将所有结果返回到一个页面但显示下一个和上一个链接?

时间:2012-04-08 14:49:34

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 rubygems will-paginate

我花了最后几个小时找出为什么will_paginate无法在我的用户帐户区域页面“site.com/”(用户/新用户)上运行,但可以在其他网页上工作,例如site.com/search, site.com/browse。

有什么方法可以解决我目前的问题吗?用户帐户区域页面是用户注册的同一页面,但隐藏了注册内容。这是我的根本路径(site.com /)。

显示下一个和上一个链接,但所有结果都显示在一个页面上。

控制器:

class UsersController < ApplicationController
  include UsersHelper
  include MessagesHelper

  def new
    @user = User.new 
    if logged_in?
      @current_user = User.find_by_username(current_user.username)
      @default_photo = Photo.find(current_user.profile.photo_id) if current_user.profile.photo_id
      @micropost = Micropost.new(:user_id => users_id)
      @microposts = current_user.microposts.page(params[:page]).per_page(1)
      @default_image = default_profile_image
      @comment = Comment.new(:user_id => current_user.id)

HTML / HAML:

.microposts
  = render 'users/partials/micropost_form'
  - if @current_user.microposts.any?            
    = render 'users/partials/microposts'
    = will_paginate @microposts

我的部分微博部分

<% @current_user.microposts.each do |m| %>
        <% if m.poster_id.nil? %>
       <div class="postHolder">
        <nav class="micropostOptions">
         <ul class="postMenu">
           <li class="deletePost"><%= link_to content_tag(:span, "Delete post"), m, :method => :delete, :confirm => "Are you sure?", :title => m.content, :class => "message_delete" %>
           </li>
           <li class="disableCommenting"><%= link_to content_tag(:span, "Pause commenting"), "2" %></li>
           <li class="blockCommenter"><%= link_to content_tag(:span, "Block commenter"), "3" %></li>
           <li class="openInNewWindow"><%= link_to content_tag(:span, "Open in new window"), "4" %></li>
           <li class="reportAbuse"><%= link_to content_tag(:span, "Report abuse"), "5" %></li>
         </ul>  
       </nav>

更新

嗯,我刚刚在我的用户控制器microposts中创建了一个单独的操作,为它提供了自己的路径和视图,然后在该页面上尝试了will_paginate,但它仍然在一个页面上返回所有结果。混淆

1 个答案:

答案 0 :(得分:0)

感谢Jeremy上面的评论。我更改了我的部分,以便它引用@microposts而不是@ current_user.microposts,我的问题解决了。不知道我怎么会错过这个。