每个人:我已经搜索了这个错误,然后我把它发布到Stackoverflow,所以没有必要向我指出这个问题: groups.google.com/forum/?fromgroups=#!topic/carrierwave/ --这不是同一个问题。
我使用的是载波,这样用户就可以将文件上传到我的Rackspace容器中。但是当我从我的站点(在我的本地机器上,仍然处于测试模式)提交时,我得到了一个Fog::Storage::Rackspace::NotFound应用程序/控制器/authors_控制员.on:8: in‘`update’error。我的Rackspace容器名为kontainer.ofstuff。这是我的密码:
pic_uploader.rb:
class PicUploader < CarrierWave::Uploader::Base
include Rails.application.routes.url_helpers
storage :fog
def store_dir
"#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
endauthor.rb模型
class Author < ActiveRecord::Base
attr_accessible :stuff, :profilepic
mount_uploader :pic, PicUploader
def dostuff
end
endcarrierwave.rb位于配置/初始化器目录中。
CarrierWave.configure do |config|
config.storage = :fog
config.fog_credentials = {
:provider => 'Rackspace',
:rackspace_username => 'myusername',
:rackspace_api_key => '98765asecretnumber3'
})
config.fog_directory = 'kontainer.ofstuff'
config.fog_host = 'https://34567secretnumberiiiii.ssl.cf2.rackcdn.com'
end控制器authors_controller.rb
class AuthorsController < ApplicationController
def update
@author = Author.find(params[:id])
@booklist = Book.where(:author_id => @author.id)
#line 7
if @author.update_attributes(params[:author])
sign_in @author
redirect_to @author
else
render 'profileinfo'
end
end
endedit.html.erb:
<%= f.file_field :pic %>
<%= f.submit "Save Author Info" %> 当我让这段代码‘上传’/存储到一个文件时,这很好。也许f.submit不适用于载波?如果是not...where,我是否找到了正确的提交代码?
知道有什么问题吗?
发布于 2012-10-25 20:47:22
我也有同样的问题,但对我来说,我需要用相同的名字多次制造容器,但所有的区域都是一样的。我不知道为什么在那之后成功,但我想这是值得一试的?
更新11-7-2012
所以自从我回答后,载波有了一些更新。通过一些尝试和错误,我能够获得一个更稳定的上传。我所做的是:
请注意:我配置了我的上传器以使用存储:当环境正在生产或暂存时使用fog。否则,我将使用默认的本地文件系统。
主要要注意的是,载波将配置“fog_host”更改为“asset_host”。
发布于 2013-05-19 09:52:15
我也有这个错误。通过将此添加到上载的代码中解决:
class MyUploader < CarrierWave::Uploader::Base
....
def remove!
begin
super
rescue Fog::Storage::Rackspace::NotFound
end
end
end发布于 2012-11-13 22:35:45
值得注意的是:在从AWS迁移到Rackspace之后,我遇到了同样的问题。由于更新文件的一部分是删除旧文件,因此引发了错误。在我的例子中,旧文件是在S3上,而不是在Rackspace上,所以载波变得不舒服。
https://stackoverflow.com/questions/12922980
复制相似问题