我试图在一个子集合中获得有限的结果
基本上我有这个:
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的查询)。
谢谢!
发布于 2014-03-21 13:46:06
我得到了解决方案,mongoid创建了一个包含in (track_ids)的数组,其中包含列表中所有轨道的in。
通过重写track_ids而不是跟踪,没有任何查询或存储在mongoid中。
user = Model::User.find(token)
playlists = user.playlists
playlists.map do |playlist|
playlist.track_ids = playlist.track_ids.take(4)
end
decorator = Decorator::PlaylistCollection.new(playlist)
response_with decorator发布于 2014-03-25 21:40:58
我认为下面的代码可以做到这一点。
user = Model::User.find(token)
playlists = user.playlists[0..3]
decorator = Decorator::PlaylistCollection.new(playlist)
response_with decoratorhttps://stackoverflow.com/questions/22558980
复制相似问题