2015年8月3日 星期一

Remotipart - Upload File via AJAX



最近在寫關鍵評論網的後台時,遇到了一個問題:無法利用 Rails Ajax 上傳檔案。


直覺的寫法:
simple_form_for @post, html: { multipart: true }, remote: true do |form|
...
end
這樣會發生錯誤,瀏覽器並不允許利用 HTTP Request 來上傳檔案。

那該怎麼辦呢?

JQuery Form Plugin 解決了這個問題。 使用範例





藉由 Javascript,在網頁中動態加入一個隱藏的 iFrame,內嵌一個一模一樣的 Form,並利用一般的方式將檔案上傳,並將上傳成功的訊息回傳給使用者看到的 From,讓使用者產生瀏覽器利用 Ajax 上傳檔案的錯覺。       


那在 Ruby on Rails 要怎麼做到呢?


Remotipart

只要安裝這個 gem ,不需要額外修改原本寫好的 Ruby code,它就會自動偵測上傳檔案的 Ajax form,幫助我們產生需要的 .ajaxSubmit() Javacript method。








參考資料:

沒有留言:

張貼留言