Ruby on rails “限制”作为标记作用于“最大数量”

Ruby on rails “限制”作为标记作用于“最大数量”,ruby-on-rails,tags,Ruby On Rails,Tags,我在用这个宝石 视图: 我只想限制到前20个标签 谢谢您可以在控制器中执行以下操作: if params[:tag] @casts = Cast.tagged_with(params[:tag]) else @casts = Cast.all end @casts = Cast.tagged_with(params[:tag]).order('DESC').limit(20) 看看这里,你可以在模型中创建一些东西,如果你需要在整个应用程序中使用它,你可以调用你的助手: 因此,在您的

我在用这个宝石

视图:

我只想限制到前20个标签


谢谢

您可以在控制器中执行以下操作:

if params[:tag]
  @casts = Cast.tagged_with(params[:tag])
else
  @casts = Cast.all
end
@casts = Cast.tagged_with(params[:tag]).order('DESC').limit(20)
看看这里,你可以在模型中创建一些东西,如果你需要在整个应用程序中使用它,你可以调用你的助手:

因此,在您的模型中:

  def self.newest
  Model.order('created_at DESC').limit(5).all
  end
在助手呼叫中:

def newest
 Model.newest
end
然后,您可以在视图中的任何位置使用它:

<% newest.each do |new| %>
<%= new.column %>

我的建议是先在控制台上玩一下,你也会学得更快:

不,那不行,我试过了。在视图中,将Cast.tag_counts更改为Cast.tag_counts.limit5将限制为5,但不会对其进行排序。@Techra更改了帮助。看看我给你的链接,你需要在数据库级别定义模型中的顺序,然后你也可以从助手或应用程序任何部分的模型中调用它。我不确定标记_计数是如何工作的,它不是数据库中的一列,所以你无法查询它。这不起作用:@casts=Cast.taged_with params[:tag]解决方法其实很简单:我把tag_counts改为tag_counts_on,并添加了order'count DESC'Cast.tag_counts_on:tags.order'count DESC'.limit20
<% newest.each do |new| %>
<%= new.column %>