0
この問題を見ていただきありがとうございます。私はRails 5でAPIを構築していて、POST作成リクエストに問題があります。Rails 5 API POSTパラメータを空にする
基本的に、私のAPIは、私のAPIがそれを取得し、理由がわからなくなるまでには空です。ポストマンで、このJSONオブジェクトの送信:
50: def battle_params
=> 51: binding.pry
52: params = params.to_h
53: params.permit(:winner_score, :loser_score, :winner_id, :loser_id)
54: end
params
=> nil
:
class Api::V1::BattlesController < ApplicationController
protect_from_forgery with: :null_session, if: Proc.new { |c| c.request.format.include? 'application/json' }
wrap_parameters format: [:json]
# POST /battles
def create
@battle = Battle.new(battle_params)
if @battle.save
render json: @battle, status: :created, location: @battle
else
render json: @battle.errors, status: :unprocessable_entity
end
end
private
# Only allow a trusted parameter "white list" through.
def battle_params
binding.pry
params.permit(:winner_score, :loser_score, :winner_id, :loser_id)
end
end
私はbattle_params方法でbinding.pryを打つ、のparamsオブジェクトがnilである:
{
"battle": {
"winner_score": 300,
"loser_score": 3,
"winner_id": 2,
"loser_id": 1
}
}
ことはここでは、関連するコントローラです
私の郵便配達人のリクエストは、.permitがターミナルでも見られる未定義のハッシュのメソッドであるという応答を受け取ります。
"status":500,"error":"Internal Server Error","exception":"#\u003cNoMethodError: undefined method `permit' for {}:Hash\u003e"
NoMethodError (undefined method `permit' for {}:Hash):
app/controllers/api/v1/battles_controller.rb:53:in `battle_params'
私は以前この問題を抱えていませんでしたので、どのような洞察力も本当に感謝しています。
を必要としますが、 'params.requireを試しました(:戦い).permit(whitelist_items)' – Nimir