【发布时间】:2014-03-21 12:36:19
【问题描述】:
我试图在子集合中获得一组有限的结果
基本上我有这个:
user = Model::User.find(token)
playlists = user.playlists
playlists.each do |playlist|
criteria = playlist.tracks.limit(4) #I Want to limit these to return max 4 tracks
#the criteria is perfect here but the decorator still returns all the tracks
#setting this criteria on the user saves the new tracks list limited by 4
#like this:
playlists[index].tracks = criteria
end
decorator = Decorator::PlaylistCollection.new(playlist)
response_with decorator
这不起作用,我的问题是如何限制每个播放列表最多返回 4 首曲目
我想要的是响应包含所有播放列表,其中最多包含 4 首曲目(也应优化对 mongo 的查询)
- 显示所有播放列表
- 每个播放列表最多包含 4 首曲目
- 需要防止从 mongoid/mongo 调用播放列表的所有曲目
谢谢!
【问题讨论】:
-
你到底想在
each块中做什么?您没有将前 n 条记录保存在任何地方。 -
不,这段代码不起作用,我想用装饰器构建响应,每个播放列表有 4 个轨道
-
看看这里,这似乎是一个类似的问题:stackoverflow.com/questions/16074404/…
-
不,不是,我不想计算标准返回了多少结果。 (count 返回播放列表中的所有曲目并忽略限制)。那不是我的问题
-
我已经成功了,我会在几分钟内发布答案
标签: ruby ruby-on-rails-4 mongoid