ruby-on-rails - 如何使 Postman 或 Postman Collection Runner 使用 CSV 文件发送 POST 请求,Rails 强参数
问题描述
在 Rails 6 api 中,我想用 Postman 测试一个具有强参数的控制器。
在控制器中:
class ProcessorController < ApplicationController
...
def create
file = processor_params[:file]
...
end
private
def processor_params
params.require(:upload).permit(:file)
end
end
这个请求需要我上传一个简单的 .csv 文件。
CSV 中的第一行是列标题名称(逗号分隔)。大约 30 行 csv 数据
CSV Headers 分别是:日期、工作时间、员工 ID、工作组
这是一个我想在邮递员中重现的示例夹具:
post '/processor', params: {
upload: {
file: fixture_file_upload('report.csv', 'text/csv')
}
}
如何正确发布参数和正文,以便 rails API 返回 HTTP 200 响应?
我尝试了几种方式设置邮递员请求,包括(1)通过form-data
正文,
(2)和
(3)这个raw
json:
{
"upload": {
"file": {
"date": "{{date}}",
"hours worked": {{hours worked}},
"employee id": {{employee id}},
"job group": {{job group}}
}
}
}
它不工作。我总是遇到错误,例如
"status": 500,
"error": "Internal Server Error",
#<NoMethodError: undefined method `permit' for \"file\":String>",
{
"status": 400,
"error": "Bad Request",
"exception": "#<ActionController::ParameterMissing: param is missing or the value is empty: upload>"
解决方案
推荐阅读
- python - TensorFlow 训练批处理作业是否有默认输出目录?
- typescript - 为什么 TypeScript 无法识别已安装的 TypeScript node_modules?
- php - 使用 laravel 5.5 选择数据库
- html - 如何使用 python 从 HTML 和 XPATH 中检索元素?
- excel - 根据导出的 Access 数据中的条件在两个工作簿之间复制和粘贴 Excel 行
- c# - 从异步方法创建一个同步方法
- go-gorm - 使用模型使用 GORM 查询 JSONB 列
- azure - Azure 部署插槽开关 cmdlet 在 PowerShell 中不起作用
- powershell - 用于返回出现在同一 VMHost 上的已定义组中的 VM 名称的脚本
- angular - Visual Studio Angular 编译器错误