rails中使用carrierwave上传图片
2016-01-05 11:35
489 查看
1.安装
[code]gem install carrierwave
2.更新 Gemfile
[code]gem 'carrierwave'
3.生成uploader
[code]rails generate uploader Avatar
生成文件:app/uploaders/avatar_uploader.rb
4.挂载属性
文件上传后存储的是图片的路径,存储图片路径的字段挂载AvatarUploader.比如model Book有四个属性name 、author 、publish 、picture_url,在model中加上一行:[code]class Book < ActiveRecord::Base mount_uploader :picture_url, AvatarUploader end
5.修改app/uploaders/avatar_uploader.rb
[code]# encoding: utf-8 class AvatarUploader < CarrierWave::Uploader::Base uploader: storage :file def store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}" end def extension_white_list %w(jpg jpeg gif png) end end
6.给表单加上图片上传域
[code] <p> <%= f.label :上传图书图片 %><br /> <%= f.file_field :picture_url %> <%= f.hidden_field :picture_url_cache %> </p>
7.修改controller
[code]def create @book = Book.new(book_params) @book.picture_url= params[:file] ... end
8.引用图片路径
[code]<%= image_tag @book.picture_url_url.to_s %>
carrierwave github:carrierwave
相关文章推荐
- Daily Scrum – 1/4
- Distill failed for unknown reasons
- selenium经过WebDriverWait实现ajax测试
- selenium经过WebDriverWait实现ajax测试
- 使用Genymotion调试出现错误INSTALL_FAILED_CPU_ABI_INCOMPATIBLE解决办法
- [JWFD开源工作流]AI函数必须先于DCS模块完成
- 如何不翻墙也能使用Gmail
- 关闭Google"阻止了登录尝试"方法, 其他设备也能登录Gmail等谷歌服务
- 151220DuoTaiDemo4
- 151220DuoTaiDemo3
- 151220DuoTaiDemo2
- 151220DuoTaiDemo多态详解1
- Thread 常搞混的几个概念sleep、wait、yield、interrupt
- AOJ-0531 Paint Color
- 2016 Nike Air Max 90
- 直接插入排序StraightInsertSort
- [转] AIX lv 4k偏移量
- HDU 1082.Matrix Chain Multiplication【栈的应用+矩阵乘法规则】【1月4】
- 11. Container With Most Water
- IBM小机P520 AIX