私はかなり簡単な質問があります。しかし、これまでのところ解決策は見つかっていません。Rails 4 - 強いパラメータ - ネストされたオブジェクト
{
"name" : "abc",
"groundtruth" : {
"type" : "Point",
"coordinates" : [ 2.4, 6 ]
}
}
新しい許可証方式を使用して、私が持っている:だからここ
は、私がサーバーに送信JSON文字列だ
params.require(:measurement).permit(:name, :groundtruth)
これはエラーをスローしませんが、作成したデータベースエントリgroundtruth値の代わりにnull
が含まれています。
私はちょうど設定した場合:予想通り
params.require(:measurement).permit!
すべてはのは保存されますが、もちろん、これは強力なパラメータによって提供されるセキュリティを殺します。
私は解決策、配列の許可方法を見つけましたが、ネストされたオブジェクトを使用した単一の例は見つかりませんでした。これはかなり一般的なユースケースでなければならないので、何とか可能でなければなりません。だから、どうやって動くの?
このhttp://stackoverflow.com/questions/14483963/rails-4-0に見て-strong-parameters-nested-attributes-of-a-key-to-a-hash –
@vinodadhikaryそれは正しい...私はOPが混乱していると思います。ネストされた属性を許可したいときには奇妙に思えますが、配列内のネストされたオブジェクトの属性を指定します。一方、複数のオブジェクトをネストしたい場合は、ハッシュの中にラップします.http://api.rubyonrailsを参照してください。org/classes/ActionController/Parameters.html#method-i-permitおよびhttps://github.com/rails/rails/blob/master/actionpack/lib/action_controller/metal/strong_parameters.rb#L246-L247 – j03w
@ j03w 、ソースへのリンクありがとう。今は明らかです。この発見のためにここに答えを加えて、他の多くの人々に役立つと思うようにしてください。 – vee