【问题标题】:Rails 3 & Kaminari pagination problemRails 3 & Kaminari 分页问题
【发布时间】:2011-06-08 06:21:51
【问题描述】:

好的,所以我决定在 rails 3 项目中使用 Kaminari 进行分页。我关注了 RailsCasts 的视频http://railscasts.com/episodes/254-pagination-with-kaminari

一切顺利,直到点或运行服务器。

controllers/stories_controller.rb

def index
   @stories = Story.all
   @pages = Story.page(params[:page]).per(3)
   @stories = Story.search(params[:search]) 
end

views/stories/index.html.erb

<%= paginate @pages %>

当我启动服务器时,有问题的索引页面会显示数据库中的所有故事,并呈现分页视图(1 2 Next > Last »)。为了使分页正常工作,我缺少什么?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 pagination gem kaminari


    【解决方案1】:

    我仍然无法理解您的代码。为什么将 Story.all 分配给第一行的 @stories 并覆盖第三行的变量?

    无论如何,@stories 将显示“数据库中的所有故事”,因为您没有在 @stories 上调用分页方法 (.per)。分页链接将显示分页计数,因为您在 @page 变量上调用 per 方法并将其传递给帮助程序。

    我的意思是,您需要在将关系传递给&lt;%= paginate %&gt; 助手之前调用.per。 这很简单。

    【讨论】:

    • 您好,我已将Story.page(params[:page]).per(3) 移至底部。分页现在有效,但现在我的搜索无效。
    【解决方案2】:

    我猜你想从搜索中得到结果,对吧? 试试

    @stories = Story.search(params[:search]).page(params[:page]).per(3)
    

    类似的东西:

    <% @stories.each do |story| %>
    <%= render story %>
    <% end %>
    <%= paginate @stories %>
    

    在你看来

    【讨论】:

    • 您好,抱歉,应该提到我也尝试对完整结果集进行分页
    • 所以分页@pages 不起作用,对吧?尝试将@pages 重命名为@mypages,看看会不会更好。
    • 好的,所以将它和我的 .per(3) 更改为更大的数字实际上并没有显示分页链接,这表明分页正在幕后工作......只是没有显示他们在前端正确
    • 如果我将&lt;%= paginate @pages %&gt; 更改为&lt;%= paginate @stories %&gt; 我得到一个错误undefined method `current_page'
    • 您能否更新您的问题并在最初的问题下方写下您所做的所有更改后您的控制器和视图的外观?我觉得我们需要为你重写整个事情并最终解释它:)
    猜你喜欢
    • 2012-01-01
    • 2012-01-02
    • 2011-09-26
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-18
    • 1970-01-01
    相关资源
    最近更新 更多