皆さん: これを Stackoverflow に投稿する前にエラーを検索したので、これを指摘する必要はありません: groups.google.com/forum/?fromgroups=#!topic/carrierwave/ 同じ問題ではありません。
ユーザーが Rackspace コンテナにファイルをアップロードできるように、Carrierwave を使用しています。しかし、自分のサイト (ローカル マシン上、まだテスト モード) から送信すると、Fog::Storage::Rackspace::NotFound app/controllers/authors_controller.rb:8:in `update' エラーが発生します。私の 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
end
モデルの作者.rb
class Author < ActiveRecord::Base
attr_accessible :stuff, :profilepic
mount_uploader :pic, PicUploader
def dostuff
end
end
Carrierwave.rb は config/initializers ディレクトリにあります
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
コントローラーの作者_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
end
edit.html.erb:
<%= f.file_field :pic %>
<%= f.submit "Save Author Info" %>
このコードをファイルに「アップロード」/保存すると、これは正常に機能しました。おそらく、f.submit は Carrierwave では動作しませんか? そうでない場合...送信するための正しいコードはどこにありますか?
問題は何ですか?