Gem 关于 CarrierWave 使用心得,抛砖引玉

lonely21475 · 2013年11月27日 · 最后由 nuanshuidai 回复于 2017年07月31日 · 2930 次阅读

最近因为工作需要,遇到了图片上传问题,经过看了 paperClip 文档和 CarrierWave 文档,感觉 Carrierwave 更适合于新手

使用步骤如下

  1. 在 Gemfile 文件里加入 gem 'carrierwave'
  2. bundle install 等待自动部署安装
  3. 在控制台使用命令 rails generate uploader image 4,. 使用工具到 app/uploaders/image_uploader.rb
  4. 打开需要上传文件的 Models,如我想上传 teachers 的 photo
class Teacher < ActiveRecord::Base
   mount_uploader :photo, ImageUploader
end

这段代码是用来保存上传文件的本地地址、这是在 app/uploaders/image_uploader.rb

def store_dir
  "#{model.class.to_s.underscore}s/#{model.number}"
end

#{model.class.to_s.underscore}s 这个会生成 teachers

#{model.number} 这段代码会根据填入的数据生成相应的字段

如:

public/teachers/xxx0001

这是在 App/uploaders/image_uploader.rb

def extension_white_list
  %w(jpg jpeg gif png)
end

这段代码是用来规定上传文件的各式,图片 记得在文件顶部加入 require 'digest' 这是在 App/uploaders/image_uploader.rb

def filename
  if original_filename
    @name ||= Digest::MD5.hexdigest(current_path)
    "#{@name}.#{file.extension}"
  end
end

这段代码会将上传的文件重命名,通过 Digest,MD5 转换成 16 为随机字符 如: a39bf8eafbe1d92422ce14cf78766e45.jpg

下面的是一个大神的代码,希望对大家有帮助,这是他的连接: 这里:http://huacnlee.com/blog/carrierwave-upload-store-file-name-config/

可否用 Markdown 格式化下代码? 😄

#1 楼 @chunlea 您好,我学习 Ruby 的时间不长,对于 Markdown 不清楚,嘿嘿

Markdownruby 没啥关系 . 推荐花几分钟了解下 .

#3 楼 @song940 不过经过自己的摸索和别人的指导感觉还是不一样,只想那些新的 ruber 能少走弯路

#4 楼 @lonely21475 貌似大家喜欢用 rubist

#6 楼 @kgen 你是对的,哈哈,刚查了,居然还有这个http://therubyist.com/

但是 ,看来犯错的不少

互相交流就是这么强大,总是能学到新的东西

为啥总感觉楼主不会讲中文呢。。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号