美文网首页Ruby
图片上传功能: CarrierWave

图片上传功能: CarrierWave

作者: Sarah_友妹 | 来源:发表于2017-10-16 21:41 被阅读16次

    我们可以搭配用两个gem,CarrierWaver 和 MiniMagick,来实现图片上传功能。

    具体步骤

    1. 安装这两个gem,先在Gemfile中加入以下两行
    gem 'carrierwave'
    gem 'mini_magick'
    

    执行bundle install
    重启服务器rails s

    1. 产生uploaders/image_uploader.rb文件
      执行rails g uploader image
    2. 给需要上传图片的model(此处用product model),增加image栏位,执行:
      rails g migration add_image_to_products image:string
      rake db:migrate
    3. 在product model里,挂上ImageUploader
    class Product < ActiveRecord::Base
    mount_uploader :image, ImageUploader
    

    重点:注意容易出错的点

    • 通常步骤如上,即从1 -> 2 -> 3 -> 4,则不会出错
    • 如果颠倒了顺序,比如把步骤3放到前面,即3 -> 4 -> 1 -> 2,则会出现下面的问题。

    问题:Rails console时,出错

    原因是:
    CarrierWave和ActiveRecord之间,没有关联

    因此,解决方法是:
    在config/environments/xxx.rb文件中,加入下面一行,建立关联:

    require 'carrierwave/orm/activerecord'
    

    相关文章

      网友评论

        本文标题:图片上传功能: CarrierWave

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