利用CarrierWave上传文件

新建项目

mkdir UploadTest
rails new .


添加CarrierWave支持

在Gemfile文件中加上
gem 'carrierwave'
执行
bundle install

新建模型,添加CarrierWave属性支持

rails g model user name:string head_pic:string
rails g uploader file_helper
可以看到在 根/app/uploaders下新生成了文件file_helper_uploader.rb,里面有FileHelperUploader类,这就是支持上传的类

在 根/app/models/user.rb里面找到类User,加上
class User < ApplicationRecord
  mount_uploader :head_pic, FileHelperUploader
end
这样就为User模型的head_pic属性添加了CarrierWave支持

新建Controller测试上传

rails g controller Test test_upload

class TestController < ApplicationController
  skip_before_filter :verify_authenticity_token
  def test_upload
    #在User模型发生save或者create动作的时候,上传动作就会执行
    user=User.create(
    name:"aaa",
    head_pic:request.POST["head_pic"]
    )
    json_str =""
    if user!=nil
      json_str = "{'head_pic':'0.0.0.0#{user.head_pic}'}" #返回文件存储路径,即下载路径
    else
      json_str = "falied" 
    end
    render json: json_str
  end
end



运行测试

rails db:migrate RAILS_ENV=development
rails s -b 0.0.0.0 -p 3333









评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值