Ruby on rails “限制”作为标记作用于“最大数量”
我在用这个宝石 视图: 我只想限制到前20个标签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) 看看这里,你可以在模型中创建一些东西,如果你需要在整个应用程序中使用它,你可以调用你的助手: 因此,在您的
谢谢您可以在控制器中执行以下操作:
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 %>