我想使用CarrierWave上傳器來解壓縮包含可變數量文件的上傳zip文件,並將每個文件存儲在存儲zip文件的相同位置。這些文件應該在持有上傳器的模型中可用。將文件版本動態添加到Carrierwave上傳器
我只需要一個關於如何實現這一點的起點。
我想使用CarrierWave上傳器來解壓縮包含可變數量文件的上傳zip文件,並將每個文件存儲在存儲zip文件的相同位置。這些文件應該在持有上傳器的模型中可用。將文件版本動態添加到Carrierwave上傳器
我只需要一個關於如何實現這一點的起點。
不知道這是否與100%相關,但是我剛剛製作了一個接受zip文件的Gallery
控制器,並將該zipfile的內容添加爲與Gallery
模型關聯的Images
。
我通過使用Zippy gem以及一個擴展了StringIO的Home Roll FilelessFile類來完成此任務。
zipfile中的每個文件都保存爲單獨的carrierawave裝載的Image
模型。
在你的情況我想你可以有一個File
模型(和文件上傳)的belongs_to
你的主力機型,而主要型號有has_many
相對於File
模型。
對於豁免控制器和「神奇」 fileless處理請參見:https://gist.github.com/1963073
注:請注意,我不使用CarrierWave用於處理壓縮文件上傳,我用CarrierWave保存裏面的文件zip文件。如果您還需要存儲zip文件,您可以創建ZipFile上傳器,並在主模型上隨同單個文件一起安裝zip文件,或者僅重新使用上傳器並將zipfile保存在主模型的字段中。