これを行う方法がわかりませんか?そして、他のどこからも多くの助けを見つけることができませんでした!
このようにペーパークリップとフォグを設定しました。
config/initializers/fog.rb
connection = Fog::Storage.new({
:provider => 'Rackspace',
:rackspace_username => '',
:rackspace_api_key => ''
})
環境.rb;
Paperclip::Attachment.default_options.update({
:path => ":attachment/:id/:timestamp_:style.:extension",
:storage => :fog,
:fog_credentials => {
:provider => 'Rackspace',
:rackspace_username => '',
:rackspace_api_key => '',
:persistent => false
},
:fog_directory => '',
:fog_public => true
})
file_field
画像を取得してコントローラーに投稿するために使用しています。これにより、次のようなものが得られます。
"pic"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0x007f90ac06a6c8 @original_filename="3245-1920x1200.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"cloth[pic][image]\"; filename=\"3245-1920x1200.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/tmp/RackMultipart20130104-5386-103laem>>}
私が理解できないのは、このようなものを使用してこのファイルをクラウドファイルに実際に保存するにはどうすればよいかということです。
file = directory.files.create(
:key => 'resume.html',
:body => File.open("/path/to/my/resume.html"),
:public => true
)
編集
関連モデル;
class Cloth
include Mongoid::Document
has_many :pics
class Pic
include Mongoid::Document
include Mongoid::Paperclip
belongs_to :cloth
has_mongoid_attached_file :image, :styles => { :medium => "300x300>", :thumb => "100x100>" }
そしてコントローラーでは、これが現在上記のパラメーターに基づいて写真を作成している方法です。
@cloth = Cloth.new
@cloth.pics.create!(params[:cloth][:pic])