bas*_*eck 2 attachment amazon-s3 paperclip ruby-on-rails-3
我刚刚安装了Paperclip并尝试将图标附加到我的模型上.
has_attached_file :icon,
:styles => { :normal => "100x100>", :format => 'png' },
:storage => :s3,
:s3_credentials => "#{RAILS_ROOT}/config/s3.yml",
:url => "/icon/:slug.:extension"
:path => "icon/:slug.:extension"
Run Code Online (Sandbox Code Playgroud)
s3.yml包含我的桶名和两个键.
slug interpolation在config/initializers/paperclip.rb中定义为
Paperclip.interpolates('slug') do |attachment, style|
attachment.instance.cached_slug
end
Run Code Online (Sandbox Code Playgroud)
当我调用game.icon.url时,我收到此错误:
undefined method `icon_file_name' for #<Game:0x4000f50>
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
我在Windows 7 x64上运行rails 3.0.4和ruby 1.9.2,如果它有任何区别的话.
您是否为Game模型创建了一个迁移,以便在Paperclip需要的相应字段中添加?从Github上的Paperclip文档:
class AddAvatarColumnsToUser < ActiveRecord::Migration
def self.up
add_column :users, :avatar_file_name, :string
add_column :users, :avatar_content_type, :string
add_column :users, :avatar_file_size, :integer
add_column :users, :avatar_updated_at, :datetime
end
def self.down
remove_column :users, :avatar_file_name
remove_column :users, :avatar_content_type
remove_column :users, :avatar_file_size
remove_column :users, :avatar_updated_at
end
end
Run Code Online (Sandbox Code Playgroud)
创建迁移后,需要运行rake任务来更新db: rake db:migrate
| 归档时间: |
|
| 查看次数: |
5205 次 |
| 最近记录: |