gem "paperclip", "~> 4.2"
class User < ActiveRecord::Base
has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/images/:style/missing.png"
validates_attachment_content_type :avatar, :content_type => /\Aimage\/.*\Z/
end
必须指定上传文件类型validates_attachment_content_type 否则可以允许任意类型
do_not_validate_attachment_file_type :avatar
rails generate paperclip user avatar
class AddAvatarColumnsToUsers < ActiveRecord::Migration
def self.up
add_attachment :users, :avatar
end
def self.down
remove_attachment :users, :avatar
end
end
# 修改字段
def self.up
remove_column :carousel_features, :thumbnail
add_attachment :carousel_features, :thumbnail
end
def self.down
remove_attachment :carousel_features, :thumbnail
add_column :carousel_features, :thumbnail, :string
end
<%= form_for @user, :url => users_path, :html => { :multipart => true } do |form| %>
<%= form.file_field :avatar %>
<% end %>
def create
@user = User.create( user_params )
end
private
def user_params
params.require(:user).permit(:avatar)
end
<%= image_tag @user.avatar.url %>
<%= image_tag @user.avatar.url(:medium) %>
<%= image_tag @user.avatar.url(:thumb) %>
Set the attribute to nil and save.
@user.avatar = nil
@user.save