我有一个名为播放列表的模型,其中has_and_belongs_to_many:songs
在我的PlaylistController中,我调用了respond_with(@playlist,:include =>:songs),这样我就可以返回json和xml输出。
然而,一些播放列表有数百首歌曲。所以我想让调用者通过调用发送?limit = X& offset = Y(默认值分别为25和0)。但是我如何在序列化期间将此限制和偏移传递给关联?我试过了
@ playlist.songs = @ playlist.songs.limit(l).offset(o)
但这有一些不幸的结果。 :(
有什么想法吗?
答案 0 :(得分:0)
这似乎是分页库的任务。我们正在使用will_paginate。我们的电话如下:
collection.paginate page => 2, :per_page => 10
答案 1 :(得分:0)
这是我做的:
我添加了使用集合对模型进行分页并检索分页集合的方法:
# models/playlist.rb
def paginate_songs(limit, offset)
@paginated_songs = Array.new
songs.limit(limit).offset(offset).each do |song|
@paginated_songs << song
end
end
def paginated_songs
return @paginated_songs
end
我向控制器添加了一些逻辑,它将对对象进行分页并在响应中包含分页集合:
# controllers/playlists_controller.rb
@playlist.paginate_songs(l, o)
respond_with(@playlist, :methods => [ :paginated_songs ])