如何让 Postman 或 Postman Collection Runner 发送带有 CSV 文件、rails 强参数的 POST 请求

问题描述

在 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 标题为:日期、工作时间、员工 ID、工作组

这是我想在邮递员中重现的一个示例夹具:

post '/processor',params: {
     upload: {
         file: fixture_file_upload('report.csv','text/csv')
     }
}

如何正确发布参数和正文,以便 rails API 返回 HTTP 200 响应?

我尝试通过几种方式设置邮递员请求,包括 (1) 通过 form-data 主体,
(2)

enter image description here


(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>"

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...