因此,我正在開發一款應用程序,用戶可以使用附帶的一系列行業特定元數據上傳和管理照片。Rails3,S3,回形針附件,因爲它是自己的模型?
Photo模型包含所有這些元數據,我使用Paperclip將實際圖像文件附加到模型並將圖像存儲在Amazon S3上。
的用戶交互目前是這樣的:
- 用戶點擊「添加照片」,並採取在那裏,他提出了一種形式的「新攝影」頁面。
- 表單上的第一件事是文件選擇器。用戶選擇一個文件。
- 下面是用戶填寫的元數據的幾個不同字段,以便用戶填寫。
- 用戶點擊提交,文件上傳並創建一個新的Photo對象,用戶被重定向到不同的頁面。
因此,我想要做的明顯改進是照片在此過程開始時實際上傳,以便在提交和重定向到下一個之間沒有明顯的延遲頁。在完成上傳後,能夠向用戶顯示其照片的縮略圖預覽也很好,以便他們可以在填寫表單時看到他們放入元數據中的照片。
我想我能做到這一點,如果我的圖像文件拆分成自己的模式,但後來我會參考圖像,像這樣:
@photo.attachment.file.url
,而不是說我現在使用的簡單@photo.file.url
。我寧願不要比我更深入地「嵌套它」。
另外,將它分成兩個模型引發了管理孤兒的問題,這是我目前不必處理的問題。
所以我的問題是:
- 有一個好辦法 - 最好不使用Flash - 創建而不破此非同步上傳行爲分爲兩個型號,或者 -
- 如果我絕將元數據和文件拆分爲兩個模型,有沒有辦法讓Paperclip將附件當作自己的模型,以便我可以使用
<modelname>.<paperclip_method>
而不是<model_name>.<attachment_attribute>.<paperclip_method>
來訪問它?
我知道這是一個很大的問題,所以非常感謝您的幫助!
這很有趣,我沒有想到這一點。你是否複製NEW/CREATE中EDIT/UPDATE動作的代碼,或者是否有一種簡單的方法來告訴NEW動作使用EDIT/UPDATE?另外,我想我只是將所有驗證更改爲「:on =>:update」而不是默認值? – Andrew 2011-01-11 19:58:03
@Andrew我可能會做一個從'新'重定向到一個編輯(初始化和保存一個基本的照片模型後)。至於驗證,是的,你可以將它們移動到更新,但是你可能必須允許大多數字段的空白(因爲它們是更新的AJAX)。 – 2011-01-12 01:11:28