ruby-on-rails - 将 json 数据和文件发布到 Ruby on Rails API
问题描述
我对 ruby on rails 很陌生,所以我很可能错过了一些简单的东西,但我一生都无法弄清楚这一点。
我已经用 ruby on rails 创建了一个 API 服务器,但我似乎无法将 JSON 与图片一起发布。我一直在服务器端收到错误,抱怨编码错误。
ActionController::BadRequest (Invalid request parameters: invalid %-encoding
.rbenv/versions/3.0.1/lib/ruby/3.0.0/uri/common.rb:324:in decode_www_form_component'
我正在使用 Postman 提出请求。我正在使用该form-data
选项在我的 JSON 中包含一个文本条目,在我的 PNG 中包含一个文件条目。标头 Content-Type 是多部分/混合的。并且各个键/值对分别是application/json
和image/png
。我不知道这是邮递员问题还是红宝石控制器问题。或错误。
任何见解或进一步的问题都会对我有所帮助。
编辑:这是来自邮递员内部的帖子请求的代码。
curl --location --request POST 'http://localhost:3000/api/v1/events/1/eventphotos/' \
--header 'Content-Type: multipart/mixed' \
--form 'data={
"eventphoto":{
"event_id":1,
"photopath":"nothing to see here"
}
}' \
--form 'picture=@/Users/chancefinley/Downloads/mushroom.png'
解决方案
问题最终是我需要一个包含表单的视图。你知道,这样formdata请求就有了实际提交的东西……愚蠢的错误。吸取了我的教训
推荐阅读
- javascript - 数据表和 JSON 计算的问题
- mongodb - 是否可以在 MongoDB 中使用带有 $unwind 运算符的索引?
- r - ancova 不是作为模型打印,而是作为数据框打印
- php - 如何删除端点密钥。如果存在
- java - 如何使用特殊尺寸的热敏打印机打印
- python - SQLAlchemy 自引用 column_property
- python - 使用forloop的结果在python中创建新列表
- r - 如何使用 RMarkdown 和 bookdown 以及 word_document2 导入 .tex 文件
- javascript - 为什么这些功能中的一个比另一个更快,即使它应该是相反的?
- asynchronous - 异步 SQLalchemy:访问急切加载的空关系会触发新的延迟加载,引发错误