问题描述
在 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) 和
(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 (将#修改为@)