Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails 4.2.0-Errno::EACCES(权限被拒绝@dir\u s\u mkdir-/files)_Ruby On Rails_Ruby_Ruby On Rails 4_Paperclip_Asset Pipeline - Fatal编程技术网

Ruby on rails Rails 4.2.0-Errno::EACCES(权限被拒绝@dir\u s\u mkdir-/files)

Ruby on rails Rails 4.2.0-Errno::EACCES(权限被拒绝@dir\u s\u mkdir-/files),ruby-on-rails,ruby,ruby-on-rails-4,paperclip,asset-pipeline,Ruby On Rails,Ruby,Ruby On Rails 4,Paperclip,Asset Pipeline,在rails 4.2.0中,我使用回形针上传文件。但是它抛出了一个错误,比如Errno::EACCES(权限被拒绝@dir\u s\u mkdir-/files),我如何解决这个问题 当我运行gem list回形针时,我得到如下列表 paperclip (4.3.0, 4.2.2, 4.2.0, 2.4.5) 在controller中,我尝试了两种方法,一种是@file=Asset.new(:document=>params[:Asset][:document]),另一种是 @file = A

在rails 4.2.0中,我使用
回形针
上传文件。但是它抛出了一个错误,比如
Errno::EACCES(权限被拒绝@dir\u s\u mkdir-/files)
,我如何解决这个问题

当我运行
gem list回形针时,我得到如下列表

paperclip (4.3.0, 4.2.2, 4.2.0, 2.4.5)
在controller中,我尝试了两种方法,一种是
@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

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

将您的路径更改为以下路径(使用
:rails\u root
):

rails\u root
将为您提供应用程序的路径

要在本地驱动器上创建目录,下面是运行代码- 为此,我正在执行死刑-

但得到的错误是- Errno::EACCES:Permission denied@dir\u s\u mkdir-/Main\u File
我知道原因是什么,它正在寻找超级用户(
$sudo
)权限,但我们不能每次都提供机器密码

以下内容对我来说是必要的-

在变量中创建和存储路径的步骤-

main_file = File.exist?( File.join(Dir.home, "Main_File") ) ? File.join(Dir.home, "/Main_File") : Dir.mkdir( File.join(Dir.home, "Main_File") )
如果不存在上述文件,则将创建该文件
如果存在,将访问该文件并存储在变量
main\u文件中

谢谢你的帮助


希望对你有用

我认为您正在使用aws-s3作为存储。如果是这样,请在
s3
上为您检查bucket可访问性。否。我没有使用s3,而是试图将其保存在本地主机本身中。您试图保存文件的文件夹的完整路径是什么?您是否尝试使用
:rails\u root
设置路径,如下所示:
:path=>“:rails\u root/files/:assetable\u id/:basename.:extension”
Dir.mkdir(Rails.root+ '/' + 'export')
Dir.mkdir(File.join(Dir.home, ".foo"), 0700) #=> 0
main_file = File.exist?( File.join(Dir.home, "Main_File") ) ? File.join(Dir.home, "/Main_File") : Dir.mkdir( File.join(Dir.home, "Main_File") )