簡體   English   中英

Rails 4.2.0 - Errno :: EACCES(權限被拒絕@dir_s_mkdir - / files)

[英]Rails 4.2.0 - Errno::EACCES (Permission denied @ dir_s_mkdir - /files)

在rails 4.2.0中,我使用paperclip進行文件上傳。 但它拋出了像Errno::EACCES (Permission denied @ dir_s_mkdir - /files)這樣的錯誤,我該如何解決這個問題呢?

當我運行gem list paperclip ,我得到了如下所示的列表

paperclip (4.3.0, 4.2.2, 4.2.0, 2.4.5)

在控制器中,我嘗試了兩種方法,一種是@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_root ):

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

rails_root將為您提供應用程序的路徑。

要在本地驅動器上創建目錄,這里是正在運行的代碼 - 為此,我正在執行 -

Dir.mkdir(Rails.root+ '/' + 'export')

但得到錯誤as- Errno :: EACCES:Permission denied @ dir_s_mkdir - / Main_File
我知道是什么原因,它正在尋找超級用戶( $ sudo )權限,但我們每次都無法提供機器密碼。

以下按要求為我工作 -

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") )

如果不存在,上面將創建文件
如果它存在將訪問它並存儲在變量main_file

謝謝你的鏈接

希望對你有用!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM