【问题标题】:CarrierWave does not return url after file upload文件上传后 CarrierWave 不返回 url
【发布时间】:2018-12-30 06:20:46
【问题描述】:

我正在尝试在使用 rails + Carrierwave 上传文件后获取文件 url。

这是我的控制器:

class PhotosController < ApplicationController
  before_action :check_authorization!
  skip_before_action :verify_authenticity_token, only: :create

  def index
    render json: Photo.all
  end

  def create
    @photo = Photo.create(photo_params)

    if @photo.valid?
      render json: @photo
    else
      render json: { errors: @photo.errors.full_messages }, status: 422
    end
  end

  private

  def photo_params
    params.permit(:photo, :description)
  end
end

但文件上传后我得到的是:

{
    "id": 12,
    "photo": "#<ActionDispatch::Http::UploadedFile:0x00000004c08c18>",
    "description": "test",
    "created_at": "2018-07-22T18:01:01.699Z",
    "updated_at": "2018-07-22T18:01:01.699Z"
}

我尝试使用merge 并尝试获取带有照片属性的网址,但我遇到的问题是属性photo 是一个字符串。

【问题讨论】:

    标签: ruby-on-rails carrierwave


    【解决方案1】:

    根据Carrierwave doc可以查看.url的URL:

    @photo.photo.url
    

    其中第二个“照片”是为保存文件配置的字段。另外,如果需要路径,可以使用:.current_path

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 1970-01-01
      • 1970-01-01
      • 2015-10-30
      • 2019-06-06
      • 2018-02-26
      • 1970-01-01
      相关资源
      最近更新 更多