Довольно интересный метод прогрузки файла, хотя думаю многие его знают.
Для начала создадим форму и скрытый iframe в который собственно и будет отправлятся сама форма (на это указывает атрибут target).
Когда будет нажата кнопка Submit, форма отправится в скрытый iframe, и будет вызван метод контроллера «upload_action». Теперь необходимо получить данные в контексте всей страницы (родительского окна для фрейма). Для этого используется очень интресное решение. Опишем контроллер для получения и обработки данных из этой формы:
Обращение к iframe реализовано плагином respond_to_parent. Для генерации такой формы с iframe можно использовать плагин remote_upload.
Решение на мой взгляд очень даже симпатичное.
Для начала создадим форму и скрытый iframe в который собственно и будет отправлятся сама форма (на это указывает атрибут target).
<br>
<br>
/><br>
/><br>
<br>
<br>
Когда будет нажата кнопка Submit, форма отправится в скрытый iframe, и будет вызван метод контроллера «upload_action». Теперь необходимо получить данные в контексте всей страницы (родительского окна для фрейма). Для этого используется очень интресное решение. Опишем контроллер для получения и обработки данных из этой формы:
<br>
class UploadController < ActionController::Base<br>
def upload_action<br>
responds_to_parent do<br>
File.open("public/files/upl_file",'wb') do |file| <br>
file.write params[:upl_data].read <br>
end <br>
render :update do |page|<br>
page.replace_html 'upload_frm', :partial => 'upload'<br>
end<br>
end<br>
end <br>
end<br>
Обращение к iframe реализовано плагином respond_to_parent. Для генерации такой формы с iframe можно использовать плагин remote_upload.
Решение на мой взгляд очень даже симпатичное.