1

在rails 4.2.0中,我使用paperclip进行文件上传。但它是抛出一个错误,如Errno::EACCES (Permission denied @ dir_s_mkdir - /files),我该如何解决这个问题?Rails 4.2.0 - Errno :: EACCES(权限被拒绝@ dir_s_mkdir -/files)

当我运行gem list paperclip,我得到的名单像下面

paperclip (4.3.0, 4.2.2, 4.2.0, 2.4.5) 

在控制器,我已经尝试了2种方式,一种是@file = Asset.new(:document=>params[:asset][:document])而另一种方式是

@file = Asset.new(user_params) 

def user_params 
    params.require(:asset).permit(:document) 
end 

在模型中,

attr_accessible :status, :document_file_name, :document_content_type, :document_file_size 
attr_accessible :document 

has_attached_file :document, 
:url => '/files/:assetable_id/:basename.:extension', 
:path => "/files/:assetable_id/:basename.:extension", 
:storage => :filesystem 

如何解决此权限被拒绝的问题?

+0

我认为你使用aws-s3作为存储。如果是这样,那么在's3'上检查你的bucket可访问性。 –

+0

不。我不使用s3,我试图将它保存在localhost本身。 –

+0

什么是您试图保存文件的文件夹的完整路径? –

回答

3

更改路径以下(使用:rails_root):

:path => ":rails_root/files/:assetable_id/:basename.:extension" 

rails_root会给你的路径,你的应用程序。

+0

我已经试过这个,但仍然存在相同的问题。 –

+0

您是否尝试使用':rails_root'设置路径,如下所示:':path =>“:rails_root/files /:assetable_id /:basename。:extension”'? –

+1

谢谢。当我改变'路径'它的作品。 –

相关问题