更新:我已經切換到CarrierWave(終於得到它的工作),所以雖然我仍然欣賞這個問題的答案,我將無法嘗試,如果他們真的工作,因爲我已經完全刪除DM-回形針從我的代碼。如何使用Sinatra,Datamapper,DM-Paperclip和S3?
那裏嗨,
我正在開發使用DataMapper的一個西納特拉,web應用,並正在尋求與S3作爲存儲添加一些上傳的功能。我試過CarrierWave,但我無法讓它工作,所以現在我正在嘗試dm-paperclip。這就是我現在所擁有的:
型號:
class Article
include DataMapper::Resource
include Paperclip::Resource
property :id, Serial
property :created_at, DateTime
property :updated_at, DateTime
property :title, String
property :body, Text
has_attached_file :screenshot,
:storage => :s3,
:s3_credentials => {
:access_key_id => 'my-access-key-id',
:secret_access_key => 'my-secret_access-key',
:bucket => 'my-bucket'
},
:styles => {
:medium => "300x300>",
:thumb => "100x100>"
}
end
控制器:
post '/articles/create' do
@article = Article.new
@article.title = params[:title]
@article.body = params[:body]
@article.screenshot = params[:screenshot]
begin
@article.save
rescue DataMapper::SaveFailureError => e
puts "Error saving article: #{e.to_s} validation: #{@article.errors.values.join(', ')}"
rescue StandardError => e
puts "Got an error trying to save the article #{e.to_s}"
end
redirect '/articles'
end
然而,當我創建一個新的文章不保存任何東西到我的S3存儲和我不也不會有任何錯誤。
任何想法我做錯了什麼?
配置回形針拋出一個錯誤: 「未初始化的常量ActiveSupport :: Inflector」(我沒有使用ActiveSupport) – Marc 2011-03-13 12:45:47
好的,我會更新它,所以它不需要ActiveSupport。 – solnic 2011-03-14 13:11:24