## Rails ActiveRecord class Playlist serialize :items_ids def videos(offset = nil, limit = nil) ids = item_ids || [] vs = Video.find(:all, :conditions => ["id in (?)", ids], :limit => limit, :offset => offset) hvs = Hash[*(vs.map{|v| [v.id.to_i, v] }.flatten)] ids.map{|i| hvs[i.to_i] } end def add_item(v) self.items_id ||= [] items_id.unshift(v.id) v.playlist_id = self.id v.save! end end list = Playlist.new list.add_item(some_video) list.videos(0, 2) #=> [ #