Allow rails 3 controllers to return streaming records. Support returning a valid JSON array, or raw file attachment in user specified format.
In your controller:
include Streamer
respond_to do |format| format.text do stream_to('users.txt') do |output| User.find_each do |u| output.write "#{u.name} #{u.email}\n" end end end format.json do stream_json do |output| User.find_each do |u|
# will be rendered as an object in a json array container
send_record(u) end end end end
Inspiration from patshaughnessy’s blog. This is useful for returning large record sets without an initial server delay.
Copyright © 2011 Drew Robb. released under the MIT license