1
我想在我的Rails 3.2應用程序中使用Paperclip gem與Amazon S3。但是,當我添加:storage =>:s3和S3信息並生成表單時出現問題。回形針與S3 - 未定義的方法
錯誤:
undefined method `photo' for #<PlacePhoto:0x007fdbbd1e75a8>
提取的源(圍繞線#78):
75: <% end %>
76:
77: <%= f.simple_fields_for :place_photos do |photo| %>
78: <%= photo.input :photo %>
79: <%= photo.input :description,
80: :label => "Photo label",
81: :input_html => { :class => 'span4', :rows => 2 } %>
型號:
class PlacePhoto < ActiveRecord::Base
has_attached_file :photo,
:styles => { :medium => "300x300#", :thumb => "100x100#" },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:path => "/:style/:id/:filename"
attr_accessible :description, :photo
belongs_to :place
validates_attachment :photo,
:presence => true,
:content_type => { :content_type => /image/ },
:size => { :in => 0..2.megabytes }
end
遷移
class CreatePlacePhotos < ActiveRecord::Migration
def change
create_table :place_photos do |t|
t.text :description
t.integer :place_id
t.has_attached_file :photo
t.timestamps
end
end
end
我用下面的文章來實現S3:http://doganberktas.com/2010/09/14/amazon-s3-and-paperclip-rails-3/。我沒有捆綁安裝,rake數據庫:遷移並重新啓動服務器。
有趣的是,這個錯誤不會出現,並且當模型缺乏S3信息生成形式:
模型(其他版本):
class PlacePhoto < ActiveRecord::Base
has_attached_file :photo,
:styles => { :medium => "300x300#", :thumb => "100x100#" }
attr_accessible :description, :photo
belongs_to :place
validates_attachment :photo,
:presence => true,
:content_type => { :content_type => /image/ },
:size => { :in => 0..2.megabytes }
end
我不知道回形針S3支持得很好,但我認爲你應該填寫:bucket選項,以針對回形針需要使用哪個存儲區來上傳圖片。 –
存儲桶在config/s3.yml – Jacek
中定義,您是否也運行遷移?和完整的錯誤,請? – pjammer