首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类的子集的Rails分页

类的子集的Rails分页
EN

Stack Overflow用户
提问于 2011-05-31 15:27:02
回答 3查看 222关注 0票数 1

我有一个rails应用程序,并且我正在尝试设置分页来查看散文类。我是rails的新手。所以我可以对所有的文章都这样做,但我只想让某些文章出现在这个列表中(其中所有的文章都包含在Essay.find(Ranking.where(:user_id=>current_user.id).essay_id)中)。

home.html.erb包含(除其他内容外):

代码语言:javascript
复制
`<%= will_paginate @essays%>

<ul class="users">
  <%= render @essays %>
</ul>

<%= will_paginate @essays%>`

在页面控制器中:

代码语言:javascript
复制
def home
     #...
      @essays = Essay.paginate(:page => params[:page])
end

我尝试在@essays=Essay.paginate(:page => params[:page])之前添加@essays=Essay.find(Ranking.where(:user_id=>current_user.id).essay_id),但此处不提供用于Ranking类的essay_id方法。我该如何解决这个问题呢?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-31 15:45:24

这应该是可行的:

代码语言:javascript
复制
Essay.joins(:rankings)
  .where(:rankings => {:user_id => current_user.id})
  .paginate(:page => params[:page])
票数 2
EN

Stack Overflow用户

发布于 2011-05-31 16:15:01

而这可以用will_paginate来完成。我对Rails3的这个插件遇到了一些问题,在我看来,一个更顺畅的解决方案是使用另一个名为Kaminari的分页插件。

假设essay_id是作为参数传递的,您可以尝试:

代码语言:javascript
复制
@ranking = Ranking.where(:user_id => current_user.id, :essay_id => params[:essay_id]).page(params[:page]).per(10)

或者取决于你的逻辑。如果已在控制器中标识了文章对象:

代码语言:javascript
复制
@essay = Essay.find(1234)
@ranking = Ranking.where(:user_id => current_user.id, :essay_id => @essay.id).page(params[:page]).per(10)

然后,在您的视图中:

代码语言:javascript
复制
<%= paginate @ranking %>

更好的是,为了让您开始使用Kaminari,您可以查看这个rails cast。从rails数据类型中可以看出:

在Rails中分页的首选gem是will_paginate,但当前发布的版本不支持Rails3。有一个可以使用的预发布版本,但它已经有几个月没有更新了。如果will_paginate不再处于活跃的开发阶段,还有没有其他我们可以使用的宝石?

另一种选择是Kaminari。这似乎提供了一个更干净的分页实现,还提供了几个改进的特性,所以让我们在我们的应用程序中尝试一下。

希望这能有所帮助!

票数 0
EN

Stack Overflow用户

发布于 2011-05-31 15:53:01

find方法之后简单地链接paginate方法:

代码语言:javascript
复制
@essays=Essay.find(Ranking.where(:user_id=>current_user.id).essay_id).paginate(:page => params[:page])
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6184275

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档