rails上传文件
插件:paperclip
一、模型
首先在模型文件里加上以下代码:
has_attached_file :photo , :styles => { :medium => "300x300", :thumb => "100x100" }
二、数据库迁移文件
然后修改migrate,添加存储图片信息的字段:
class AddAttachmentsPhotoToProduct < ActiveRecord::Migration def self.up add_column :products, :photo_file_name, :string add_column :products, :photo_content_type, :string add_column :products, :photo_file_size, :integer add_column :products, :photo_updated_at, :datetime end def self.down remove_column :products, :photo_file_name remove_column :products, :photo_content_type remove_column :products, :photo_file_size remove_column :products, :photo_updated_at end end
三、视图文件
form_tag的模板:
<% form_tag :multipart => true do %> <%= file_field_tag "photo" %> <% end %>
form_for的模板:
<% form_for :user, @product, :html => { :multipart => true } do |f| %> <%= f.file_field :photo%> <% end %>
读取图片时:
<%= image_tag @product.photo.url %> <%= image_tag @product.photo.url(:medium) %> <%= image_tag @product.photo.url(:thumb) %>
附上paperclip插件