我正在合作开发一个应用程序,但由于原始开发人员在 linux 中工作而我在 OSX 中,我偶尔会遇到麻烦。我目前的问题与使用 ImageMagik 和回形针上传图像有关。当我尝试将图片上传到应用程序时,我收到以下消息。
Permission denied - /assets
我很确定这意味着该应用程序想要将图像保存在资产目录中的某个位置,但不能因为它在我的机器上不存在。
在模型中,这是处理图片的代码。
has_attached_file :avatar,
:url => "/avatars/:id?style=:style",
:styles => { :large => "190x190#", :medium => "70x70#", :thumb => "106x106#" },
:path => "/assets/rob/images/Users/:id/:style/:basename.:extension"
现在,我假设该目录存在于原始程序员的计算机上以及该站点所在的任何位置。但是我没有那个目录,所以我这样做了:
:path => "~/robotimus/dev_images/:id/:style/:basename.:extension"
但是现在我处于困境中,因为我最终必须在部署之前恢复那条线。作为解决方案,我可以编写这样的方法。
def images_path
Rails.env.production? ? "/assets/rob/images/Users/" : "~/robotimus/dev_images"
end
然后 :path 行看起来像这样:
:path => images_path + "/:id/:style/:basename.:extension"
这听起来是个好主意吗?另外,这个方法应该存储在哪里?我的猜测是它属于 config/environment.rb,但我想得到专家的意见。