ruby - Rails API - 本地文件未上传到 s3/Heroku
问题描述
这些是传递给我的 HTTP POST 请求的参数,如下所示:
Parameters: {
"vision"=>{
"description"=>"dsfsfdsfdsfsd",
"image"=>"file:///Users/ozgecokyasar/Library/Developer/
CoreSimulator/Devices/EDD6C498-DACD-433E-B96D-3A30BAE7BA6D/data/
Containers/Data/Application/
6F633096-E665-46BB-952F-2775DD85A4A6/Library/Caches/
ExponentExperienceData/%2540anonymous%252Fmanifestation-react-
3ac1cbe2-549f-
49e7-8506-ef29638d1643/ImagePicker/0E426602-8110-4A9C-8B9A-
96D0BF1B2ECE.jpg"
}
}
但是,它保存为这样(图像为零):
SQL (2.1ms) INSERT INTO "visions" ("image", "description", "created_at",
"updated_at", "user_id") VALUES ($1, $2, $3, $4, $5) RETURNING "id"
[["image", nil], ["description", "dsfsfdsfdsfsd"], ["created_at", "2019-
01-12 01:14:34.341356"],["updated_at", "2019-01-12 01:14:34.341356"],
["user_id", 3]]
为什么图像列为零?
visions_controller.rb:
def create
@vision = current_user&.visions.build(vision_params)
@vision.remote_image_url = params[:image]
@vision.save
render :create, status: :created
end
视觉模型:
class Vision < ApplicationRecord
belongs_to :user
mount_uploader :image, ImageUploader
end
但是,如果我将 visions_controller 中的创建操作更改为:
def create
@vision = current_user&.visions.build(vision_params)
@vision.remote_image_url = 'ANY REMOTE IMAGE URL'
@vision.save
render :create, status: :created
end
为什么当我添加 params[:image] 时,传递的图像参数被保存为 nil?
解决方案
推荐阅读
- ios - 在 Obj-c 中使用 truncatingRemainder() 方法
- django - 在 ViewSet 上使用“as_view”方法检索视图时未传递动作装饰器 kwargs
- java - What is "primitive interface method" in Java?
- xml - 如何在 XSLT 中对节点及其以下兄弟节点进行排序?
- c# - 如何更改 wcf 客户端中的时间戳安全标头?
- javascript - 通过 jQuery AJAX 发送文件上传请求时出现问题
- javascript - 如何为javascript中的每个对象进行ajax调用
- reactjs - 如何知道 Ant-Design 表单中的所有字段何时被验证(添加值)?
- java - 根据动态输入提取列表的一部分
- wolfram-language - 如何在 Wolfram 语言的 Interval[DateObject[],DateObject[]] 中的每个日期上应用函数?