Rails 5 を使用して JSON API を作成しています。
私のコントローラーは、次のような 1 つのrequire属性を持つ強力なパラメーターを使用します。
params.require(:require_attribute).permit(:permit_attribute1,:permit_attribute2)
通常、次のように JSON を送信する必要があります。
{
"require_attribute":{
"permit_attribute1": "data",
"permit_attribute2": "data"
}
}
必要な属性が欠落している場合、次のメッセージを取得する必要があります。
"ActionController::ParameterMissing: param is missing or the value is empty: require_attribute"
私の問題は、JSON から必要な属性を削除し、permit
強力なパラメーターと共通する属性が 1 つある場合、それが機能することです。
私が送信するJSON:
{
"permit_attribute1": "data",
}
paramsを取得すると、次のようになりlog
ます。
{"permit1"=>data, "controller"=>"mycontroller", "action"=>"create", "require_attribute"=>{"permit1"=>1} }
Rails は、エラーを発生させる代わりに、必要なキーでハッシュを作成するようです。しかし、JSON を受け取ったときに必須の属性を強制したいと考えています。
誰にもアイデアがありますか?