我有一個頭痛的問題,我似乎無法找到一個簡單的解決方案。使用回形針創建對象的AJAX文件上傳
我有幾個模型,每個都有一個圖像附件,屬於一個用戶。我做了一個非常好的ajax文件上傳和圖像裁剪的形式,但有一個問題。當我編輯已經在數據庫中的對象時,一切正常,但當我創建一個新對象時,上傳文件時它沒有。事情是,爲了能夠上傳和保存圖像,對象必須在數據庫中。我發現了兩個可能的解決方案來解決這個問題,但沒有一個能正常工作。
第一個是在新動作中創建數據庫中的對象並重定向到編輯動作。優點是它是一個非常簡單的修復。缺點是,即使用戶取消或從未提交過表單,對象也會顯示在列表中,這是非常令人困惑的。
第二種可能的解決方案是將模型的附件字段提取到單獨的模型中。在創建時,我只需要創建一個附件對象。如果用戶取消它,會使附件成爲孤兒,但這可能是可以的,因爲孤兒可以定期清除。這個問題是我無法找到一種方法來阻止用戶劫持孤兒圖片或其他圖片。除非我無法解決這個問題,我卡住了。
我完全沒有想法,真的需要這個幫助。
感謝,godisemo
編輯:
我可能不清楚。在我的表單中可以上傳圖片。在表單提交之前,圖像會立即上傳到帶有JavaScript的服務器。原因是我想讓用戶裁剪圖像。這與使用現有對象時沒有任何問題,但是在創建新對象時,正如我之前試圖解釋的那樣。
這是更新的鏈接http://web.archive.org/web/20100919151143/http://ryantownsend.co.uk/articles/storing-paperclip-file-uploads-when-validation-fails.html – 2013-07-29 16:05:54