Pobranie pliku przez użytkownika - jak?

Potrzebuję napisać akcję, w której użytkownik dostaje plik tekstowy (tworzony w locie) do zapisania na swoim komputerze po kliknięciu na odsyłacz. Strona na ekranie nie musi być zmieniana. Typowy download.
Jak zmusić przeglądarkę, aby nie wyświetlała pliku tylko pojawiło się okienko zapisania pliku.
A czy można jeszcze wymusić nazwę domyślną tego pliku?
Rozwinięcie tego co poniżej:

[code]class DictionariesController < ApplicationController

def export
out = “To jest plik tekstowy do zapisania.\n”
out << …
render :text=>out #… jakieś opcje a może inna metoda?
end

end[/code]

Użyj metody send_data zamiast render

class DictionariesController < ApplicationController def export out = "To jest plik tekstowy do zapisania.\n" send_data out, :filename => 'plik.txt' end end

Ostatnio na therailsway o tym pisał Koziarski: http://www.therailsway.com/2009/2/22/file-downloads-done-right