Ruby on rails Rails回形针错误号::EACCES(权限被拒绝@dir\u s\u mkdir-~Rails

Ruby on rails Rails回形针错误号::EACCES(权限被拒绝@dir\u s\u mkdir-~Rails,ruby-on-rails,paperclip,unicorn,digital-ocean,Ruby On Rails,Paperclip,Unicorn,Digital Ocean,在我的ubuntu虚拟服务器应用程序上尝试使用回形针附加文件时,Unicorn.log中出现以下错误: Completed 500 Internal Server Error in 312ms (ActiveRecord: 10.1ms) Errno::EACCES (Permission denied @ dir_s_mkdir - ~rails): app/controllers/articles_controller.rb:30:in `block in create' app/

在我的ubuntu虚拟服务器应用程序上尝试使用回形针附加文件时,Unicorn.log中出现以下错误:

Completed 500 Internal Server Error in 312ms (ActiveRecord: 10.1ms)

Errno::EACCES (Permission denied @ dir_s_mkdir - ~rails):
  app/controllers/articles_controller.rb:30:in `block in create'
  app/controllers/articles_controller.rb:29:in `create'
在控制器中,我有

class Article < ActiveRecord::Base
    has_attached_file :img,
    url: "/system/:attachment/:id/:style/:filename",
    validates_attachment_content_type :img, content_type: /\Aimage\/.*\Z/
end
如果这些信息还不够,请评论问题可能存在的其他地方,我很乐意分享更多代码。

尝试替换

path: "~rails/umbertoputzu/public/system/:attachment/:id/:style/:filename",


解决了这个问题。问题是,在虚拟服务器上处理Rails的用户没有代表应用程序文件夹中的回形针生成文件所需的所有访问权限。因此,我使用以下终端命令为文件夹提供了更大的访问权限:

$ sudo chmod -R 775 /RailsAppFolder

我有一种感觉,如果你将路径设置为~rails/umbertoputzu,你的应用程序将找不到路径。尝试使用:rails\u root,这样会将你放在应用程序的根目录中。因此…:rails\u root/public…尝试了。不是这样。解决方案是在我的虚拟服务器上提供对rails文件的更大访问权限。我使用$sudo chmod-R 755,它是f伊恩。
$ sudo chmod -R 775 /RailsAppFolder