美文网首页
CarrierWave使用简介

CarrierWave使用简介

作者: TCJ | 来源:发表于2015-08-23 14:54 被阅读1208次

    附件上传是普通项目里比较常见的需求,想要实现上传功能,可以自己手写,也可以用一些比较方便使用的gem,比如本文介绍的carrierwave(一下简称cw)。

    cw的使用方法比较简单,能实现的功能也比较多,不仅仅限于上传文件,还能对上传的图片格式的文件进行进一步的编辑处理。下面简单介绍一下基本的使用方法:

    1.安装——gemfile里加上 gem 'carrierwave' ,然后bundle就可以了;

    2.生成自己需要的uploader—— 项目根目录执行 rails g uploader Avatar,此时rails会自动创建一下文件:app/uploaders/avatar_uploader.rb

    3.配置该文件:编辑器中打开刚才的文件,可以配置一些参数,比如:

    配置存储文件的类型
    storage :file
    配置存储的路径
    def
    store_dir "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
    end
    配置文件名
    def
    filename original_filename if original_filename
    end
    还有一些配置使用RMagick或者MiniMagick来处理图片的功能,建议大家可以到railscasts这个网站下载相关视频看一下,这里附上直达链接http://railscasts.com/episodes/253-carrierwave-file-uploads

    4.绑定模型里的字段——比如一个attachment模型的name字段,打开attachment.rb文件,进行如下操作:

    I.引用文件
    require 'carrierwave/orm/activerecord'
    II.声明name字段与刚才生成的配置文件(其实是一个class)的绑定关系
    mount_uploader :name, AvatarUploader

    5.上传文件——

    attachment = Attachment.new
    attachment.name = File.open('local_url')
    attachment.save
    就是这么简单。
    如果是前端页面里,那把name字段的录入框设置为file即可

    相关文章

      网友评论

          本文标题:CarrierWave使用简介

          本文链接:https://www.haomeiwen.com/subject/pmjxcttx.html