Ruby on rails 在RubyonRails中向index.html.erb添加分页-简单问题

Ruby on rails 在RubyonRails中向index.html.erb添加分页-简单问题,ruby-on-rails,ruby,pagination,blogs,Ruby On Rails,Ruby,Pagination,Blogs,我对rails还不熟悉,所以请放心。我已经建立了我的第一个博客,并希望将其设置为,在文章的渲染中,我希望它能够工作,这样它只显示10篇文章,然后有一个链接来查看下一篇10篇文章 我希望这是一个简单的问题。让我知道,如果你想让我张贴任何代码 您应该使用gem将分页 安装和使用非常简单: 用法示例:查看Gem 对ActiveRecord模型进行分页非常容易: @posts = Post.paginate :page => params[:page], :order => 'created

我对rails还不熟悉,所以请放心。我已经建立了我的第一个博客,并希望将其设置为,在文章的渲染中,我希望它能够工作,这样它只显示10篇文章,然后有一个链接来查看下一篇10篇文章


我希望这是一个简单的问题。让我知道,如果你想让我张贴任何代码

您应该使用gem将分页

安装和使用非常简单:

用法示例:

查看Gem

对ActiveRecord模型进行分页非常容易:

@posts = Post.paginate :page => params[:page], :order => 'created_at DESC'
在视图中,可以使用单个视图辅助对象呈现页面链接:

<%= will_paginate @posts %>

绝对是一个不错的选择,我只是想添加一个链接,向您展示如何使用它,因为有时候这比阅读文档更容易学习基础知识。此外,您还将了解一段简短的历史,了解在Rails中包含分页时,分页是如何完成的(它更慢、更麻烦)。旧的经典分页也被移到了它自己的插件中,但只有当您将Rails升级到一个他们将其删除的版本时,才建议您使用它

Railscasts还有很多其他很棒的视频,你可能会觉得很有帮助。例如,一旦你变得更高级,你可能想尝试一下

我在使用“will_paginate”时遇到问题,安装GEM然后卸载。。。真是个问题!所以我决定在RoR上编程分页,这并不困难,所以我想分享我所做的:

控制器:

  def index
#how many register per page i want to show
    @b = 30 
#params via GET from URL
    a = params[:page].to_i
#first register per page
    a1 = params[:page].to_i * @b
#the query can be easy...
    @callcenters = Income.all(:joins => "LEFT JOIN radcheck ON radcheck.id = incomes.radcheck_id", :order => "created_at DESC",:limit => "#{a1},#{@b}", :select => "radcheck.username as clave,caller_id, created_at, value")
#I need to know how many pages somehow
     @registrostotales = Income.all(:joins => "LEFT JOIN radcheck ON radcheck.id = incomes.radcheck_id", :select => "radcheck.username as clave,caller_id, created_at, value").count

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @callcenters }
    end
  end
...
Total de registros: <%= numero = @registrostotales %><br/><br/>
<!-- total pages -->
<% pages = @registrostotales / @b %>
<!-- the last page -->
<% if pages % @b > 0 %><% pages = pages + 1 %><% end %>

Paginas:
<% (0..(pages-1)).each do |i| %>
<!-- href or link_to, http://xxxxxxxx/yyyy?page=i -->
  <%= link_to i+1, :action => "index", :controller => "callcenters", :page => i %>
<% end %>


<!-- the view.. -->
<table>
  <tr>
    <th>#</th>
    <th>Tel&eacute;fono (ID)</th>
    <th>Zona</th>
  </tr>

<% @callcenters.each do |callcenter| %>
  <tr>
    <td><%= numero - params[:page].to_i * 30 %><% numero = numero  - 1 %></td>
    <td><%= callcenter.caller_id %></td>
    <td><%= Node.first(:conditions => {:calling_id => callcenter.caller_id}).description %></td>
  </tr>
<% end %>
</table>
查看:

  def index
#how many register per page i want to show
    @b = 30 
#params via GET from URL
    a = params[:page].to_i
#first register per page
    a1 = params[:page].to_i * @b
#the query can be easy...
    @callcenters = Income.all(:joins => "LEFT JOIN radcheck ON radcheck.id = incomes.radcheck_id", :order => "created_at DESC",:limit => "#{a1},#{@b}", :select => "radcheck.username as clave,caller_id, created_at, value")
#I need to know how many pages somehow
     @registrostotales = Income.all(:joins => "LEFT JOIN radcheck ON radcheck.id = incomes.radcheck_id", :select => "radcheck.username as clave,caller_id, created_at, value").count

    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @callcenters }
    end
  end
...
Total de registros: <%= numero = @registrostotales %><br/><br/>
<!-- total pages -->
<% pages = @registrostotales / @b %>
<!-- the last page -->
<% if pages % @b > 0 %><% pages = pages + 1 %><% end %>

Paginas:
<% (0..(pages-1)).each do |i| %>
<!-- href or link_to, http://xxxxxxxx/yyyy?page=i -->
  <%= link_to i+1, :action => "index", :controller => "callcenters", :page => i %>
<% end %>


<!-- the view.. -->
<table>
  <tr>
    <th>#</th>
    <th>Tel&eacute;fono (ID)</th>
    <th>Zona</th>
  </tr>

<% @callcenters.each do |callcenter| %>
  <tr>
    <td><%= numero - params[:page].to_i * 30 %><% numero = numero  - 1 %></td>
    <td><%= callcenter.caller_id %></td>
    <td><%= Node.first(:conditions => {:calling_id => callcenter.caller_id}).description %></td>
  </tr>
<% end %>
</table>
。。。
注销总数:

0 %> 帕吉纳斯: “索引”,:controller=>“呼叫中心”,:page=>i%> # 电话é;长老(身份证) 带状疮疹 {:calling_id=>callcenter.caller_id})。description%>
我希望这对某人有帮助

致以最良好的祝愿,
Ivancarrasoq

我们可以通过使用“will_paginate-bootstrap”gem轻松做到这一点。

  • 要继续,首先在gem文件中添加一行,如下所示:

    gem'will\u paginate-bootstrap'

    现在运行bundle安装

  • 在控制器中,您将使用like
    @post=post.all
    来获取 来自模型的内容。 用这个代替

  • @post=post.paginate(:page=>params[:page],每页:5)

    在上面的每页行字段中,指定需要多少条记录 在一页中

  • 在index.html.erb中 在代码末尾,即在结束正文标记之前 加上这个,
  • 注意:我认为Post是模态的,Post是在控制器中声明的变量。
    只需使用变量即可。

    向Ruby on Rails应用程序添加分页

    要向Ruby on Rails应用程序添加分页,您必须修改以下文件:

    档案:

    gem 'will_paginate', '~> 3.1.0'
    gem 'will_paginate-bootstrap'
    
    区域控制器-->索引

    @areas=Area.pagination_请求(参数[:page])
    
    index.html.erb

    <%= will_paginate @areas, renderer: BootstrapPagination::Rails %>
    

    你可以使用卡米纳里宝石


    非常易于使用和高度定制友好

    或者,小,swifd&积极维护:

    因为我是新手,我会问一个愚蠢的问题。我是将第一行代码放在模型还是控制器中。我以为模型是基于你的答案,但不起作用。下面是我键入的内容:def will_paginate@posts=Post.paginate:page=>params[:page],:order=>“created_at DESC”end该代码打算放在控制器中。如果需要,还可以在模型中使用#paginate方法来创建自定义方法。好的,谢谢。从errtheblog安装插件时遇到问题。通过RubyGems将插件安装为gem是最简单的方法。请使用语法突出显示!好啊使用该宝石完成,自>4年后不再维护
    will_paginate-bootstrap
    不再维护,上次提交是在2016年11月7日