2010-09-24 126 views

回答

4

我建議你使用paperclipcarrierwave這兩個都是非常好的libs,在大多數情況下都是開箱即用的。

0

你也可以看看attachment_fu導軌。

+1

我個人不會推薦attachment_fu,因爲它似乎沒有維護,並且已經這麼一年多了。 – 2010-09-24 12:01:34

0

對於文件上傳,我和兩位大玩家合作過。 carrierwavepaperclip

它們爲支持不同存儲方案的常見任務提供了一個很好的解決方案。兩者都支持文件系統和S3。 Carrierwave還支持Rackspace Cloud Files和MongoDB的GridFS。

我會推薦carrierwave,因爲他們不同的使用方式。它使用您在模型上安裝的獨立上載類。這會將與文件上傳相關的代碼從模型代碼中分離出來。我覺得這種方法更簡潔,更容易測試。

+0

WRT在對象的atts中存儲信息,您可以通過爲上傳的對象定義單獨的模型來在Paperclip中執行此操作,例如,創建一個has_one Image的配置文件對象,使用image類存儲上傳atts。 – Codebeef 2010-09-24 12:21:15

+0

我現在意識到我曾想過一件事,並寫下了另一件事。我想表達的是,我覺得將代碼放在單獨的上傳類中,並且僅向模型中添加一個屬性,這是比模型中具有四個屬性和後處理代碼更清晰的實現。 如果您想將其包含在一對多/多對多關係中,您仍然必須將兩個解決方案都包裝在單獨的模型中。 – 2010-09-24 12:31:37

+0

現在根據評論編輯答案。 – 2010-09-24 12:39:57

相關問題