2012-06-07 33 views
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 
+0

我不知道回形針S3支持得很好,但我認爲你應該填寫:bucket選項,以針對回形針需要使用哪個存儲區來上傳圖片。 –

+0

存儲桶在config/s3.yml – Jacek

+0

中定義,您是否也運行遷移?和完整的錯誤,請? – pjammer

回答

1

問題通過改變來解決:

:s3_credentials => "#{RAILS_ROOT}/config/s3.yml", 

:s3_credentials => "#{Rails.root}/config/s3.yml", 
相關問題