调用Carrierwave gem功能的Rails应用程序中的以下模型方法
before_save :generate_firma
def generate_firma
unless self.signature.nil?
instructions = self.signature.map { |h| "line #{h['mx'].to_i},#{h['my'].to_i} #{h['lx'].to_i},#{h['ly'].to_i}" } * ' '
path_signature_image="tmp/"+self.intervento_id.to_s+self.sequence+".png"
puts path_signature_image
system "convert -size 1010x395 xc:transparent -stroke blue -draw '#{instructions}' #{path_signature_image}"
self.firma = File.open(path_signature_image)
end
end
在执行时生成错误No such file or directory @ rb_sysopen - tmp/58iniziofirma.png
,突出显示行self.firma[...]
上的错误。
在使用旧服务器Ubuntu 14.04上的Ubuntu 16.04 将应用程序迁移到新服务器时,会发生这种情况,该文件正确加载到S3 。
随着先前版本的加载,我认为最大的罪魁祸首是权限问题,因为每个服务器实例在根级别,用户级别和发布级别都有一个tmp目录。
然而,两台服务器上的权限相同:
drwxrwxrwt (root level)
drwxrwxr-x (user level)
drwxrwxr-x (current release level)
如何解决这个问题?
答案 0 :(得分:0)
新服务器?那么问问题有什么不同?
花了几个撞墙来找出服务器上没有安装的重要组件。 Whatever documentation there is out there它并未声明需要安装imagemagick
。