ruby-on-rails - 解析请求参数时出错。- 导轨 API
问题描述
所以我在我拥有的“收费”方法上传递了一个 post 方法,但我不断收到 400 个错误请求。
这是路线和输入 json:
POST http://localhost:3000/users/:user_id/accounts/:account_id/credit_card/:credit_card_id/charge'
Content-Type: application/json
{
"created": "8526798985",
"amount": "2000",
"currency": "usd",
}
这是收费方式:
def charge
transaction = Transaction.new(transaction_params)
transaction.credit_card_id = @credit_card.id
if transaction.valid?
transaction.save
new_transaction = { id: transaction.id, created: transaction.created, status: transaction.status, amount: transaction.amount.to_i, currency: transaction.currency, credit_card_id: transaction.credit_card_id }
render json: new_transaction
else
error_json = { error: "Invalid inputs" }
render json: error_json, status: 400
end
end
这也是 transaction_params 方法
def transaction_params
params.require(:transaction).permit(:created, :amount, :currency)
end
错误
Error occurred while parsing request parameters.
Contents:
{
"created": "8526798985",
"amount": "2000",
"currency": "usd",
}
我在这里想念什么?我做了另一个api,效果很好
解决方案
您的强大参数期望:
{
"transaction: {
{
"created": "8526798985",
"amount": "2000",
"currency": "usd",
}
}
}
但是您正在提供它:
{
"created": "8526798985",
"amount": "2000",
"currency": "usd",
}
一种解决方案是更改请求正文在您的前端放在一起的方式,或者您可以更新您transaction_params
的阅读:
def transaction_params
params.permit(:created, :amount, :currency)
end
推荐阅读
- ajax - 由于请求对象中的空查询字典,Django json 加载失败
- android - 三星体验版
- python - Python,Unittest + Pandas DataFrames:这个断言测试 = 一个布尔值(没有得到 ValueError)吗?
- inheritance - Kotlin Companion 对象关于反射和继承的限制
- dataweave - Dataweave 2.0:将嵌套数组转换为具有父详细信息的平面列表
- python - AttributeError:模块“pyproj”没有属性“pyproj_datadir”
- c# - 在每个端点的基础上启用特定的身份验证/授权方案
- javascript - loader 的 this._compilation 的替代方案
- mysql - 我该如何解决这个mysql存储函数问题?
- r - 在 R 中拆分大型数据集的有效方法