##概要
CarrierWave是rails中用来上传文件的gem。类似的gem还有PaperClip。
##和PaperClip的区别
1.PaperClip简单易用
2.CarrierWave的功能较多,应用广泛
##用法
先来做一个测试用的project吧
1 | rails new test |
加入CarrierWave的gem
1 | gem 'carrierwave' |
安装
1 | bundle install |
生成carrierwave的配置文件
1 | rails g uploader Image |
加入image列
1 | rails g migration add_image_to_product image:string |
向model中加入mount_uploader方法
1 | # app/models/product.rb |
向form中加入上传组件,其中指定hidden属性image_cache的作用就是当提交form时发生error上传的文件或者图片可以保存起来,不用再上传一次。
1 | <!-- 开始 --> |
别忘了要在controller中加一下StrongParameter
1 | def product_params |
添加显示部分的image_tag代码
1 | <p> |
就这些,大功告成,很简单。