Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.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 Carrierwave:本地映像的权限被拒绝_Ruby On Rails_Ubuntu_Carrierwave - Fatal编程技术网

Ruby on rails Carrierwave:本地映像的权限被拒绝

Ruby on rails Carrierwave:本地映像的权限被拒绝,ruby-on-rails,ubuntu,carrierwave,Ruby On Rails,Ubuntu,Carrierwave,Carrierwave工作正常,我将该目录移出了公共目录(出于安全原因),当我尝试上载图像时,出现了以下错误: Errno::EACCES in PostsController#create Permission denied - /home/starkers/Desktop/carrierwave3/public/uploads 我已经chown-R 777 carrierwave3了,它仍然给我错误。注意,我已经把目录放回public中,它仍然给我这个!我已经重新启动了服务器。不工作。我已

Carrierwave工作正常,我将该目录移出了公共目录(出于安全原因),当我尝试上载图像时,出现了以下错误:

Errno::EACCES in PostsController#create
Permission denied - /home/starkers/Desktop/carrierwave3/public/uploads
我已经
chown-R 777 carrierwave3
了,它仍然给我错误。注意,我已经把目录放回public中,它仍然给我这个!我已经重新启动了服务器。不工作。我已经运行了
sudo chown-R root carrierwave3
仍然存在此权限错误!疯了


我在运行Ubuntu俏皮蝾螈

对了,伙计们,这是一个非常奇怪的错误,以防每个人都遇到这种情况。它似乎是通过使用我的上传者的
filename
方法产生的。我的方法如下:

def filename
    "#{SecureRandom.base64}"
end
这会导致文件名无效(没有扩展名),但是,这会产生一种不可预见的效果,即上载文件夹所在的目录(在我的例子中是
public
)被设置为只读。真奇怪。肯定是个虫子

我的解决方案是删除整个公用文件夹,注释掉filename函数,重新创建公用文件夹,然后通过应用程序上传另一张图像。又开始工作了。此外,如果我的文件具有专有名称:

def filename
    "#{SecureRandom.base64}.gif"
end

它工作正常。这只是一个非常非常奇怪的错误。

多么严重的错误……这太令人恼火了!!!你退房了吗?