2017-04-10 40 views
1

我使用Rails 4.2.6和CarrierWave 1.0.0。我有一个上传设置像这样:CarrierWave文件没有在生产中保存

class LetterUploader < CarrierWave::Uploader::Base 
    storage :file 
    def store_dir 
     "#{Rails.root}/public/uploads/#{model.id}" 
    end 
end 

在发展中,该文件保存就好了,在/公/上传/等等,但在生产中,它不节能。它正在被缓存,/ tmp目录中有一个文件,但实际上并未保存。我一直在寻找解决方案,而我似乎无法找到一个解决方案。我的直觉是,这是我的生产服务器中的一个文件夹权限问题,但我确定公用文件夹递归属于我的用户名,并没有帮助。我甚至将权限设置为777,无济于事。我可以根据要求提供更多的信息(在控制器上或其他任何方面),任何帮助表示赞赏。

+0

你的'log/production.log'文件是否显示任何内容?并且'uploads'文件夹是否公开存在? – nzajt

+0

该文件夹确实存在于公共场合。我有一个帮助方法将字母传递给api。生产日志显示的是,我从api传递文件时得到一个错误,因为它实际上并没有传递一个文件(因为文件没有保存)。 – DudeMontag

回答

1

这个问题不是CarrierWave的问题,而是上传的文件直到保存它所连接的模型才存储。我重新考虑了因此模型保存,将文件发送到其他api,然后更新原始模型,它的工作原理!

相关问题