You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActionController::ParameterMissing报错:POST/UPDATE接口Postman调用失败求助

问题分析与解决

从请求日志可以明确看到参数解析异常:

Parameters: {"_json"=>[{"name"=>"Joseph Schmoseph"}], "name"=>{}}

实际提交的有效数据被放到了_json数组中,而控制器期望的params[:name]是空对象,这直接触发了ActionController::ParameterMissing错误。

解决步骤

1. 修正Postman请求格式

确保请求体使用raw模式,格式选择JSON,提交结构严格匹配控制器的参数要求:

{
  "name": {
    "name": "Joseph Schmoseph"
  }
}

不要用数组包裹数据,避免Postman自动将参数包装到_json字段中。

2. 确认请求头配置

检查Postman请求头,必须设置Content-Type为application/json,否则Rails无法正确解析JSON格式的请求体。

3. 验证控制器参数逻辑

你的name_params方法遵循Rails强参数规范,逻辑是正确的,只要请求格式匹配就能正常工作:

def name_params
  params.require(:name).permit(:name)
end

如果需要支持批量创建多条记录,才需要调整控制器逻辑处理数组参数,示例如下:

# 修改create方法
def create
  @names = Name.create(name_params)
  # 后续响应逻辑需对应调整
end

# 修改name_params
def name_params
  params.require(:names).map { |n| n.permit(:name) }
end
# 对应请求格式应为 {"names": [{"name": "xxx"}, {"name": "yyy"}]}

但从当前日志判断,你的需求是单个记录创建,只需调整Postman的请求格式即可解决问题。


内容的提问来源于stack exchange,提问作者JorgeL

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:15:43