2016-05-25 4 views
0

フィールドの1つが配列の配列であるという要求が1つあります。 パラメータレールに配列の配列を許可する方法

{ 
    "product" => { 
    "pitch_points"=>{ 
     "adwords"=>{ 
     "search"=>{ 
      "short"=>["qwe"], 
      "long"=>[["asdadas", "dasdasdas"]] 
     } 
     } 
    } 
    } 
} 

この長いキーを許可するにはどうすればよいですか?

私はこの

params.require(:product).permit( 
    pitch_points: [ 
    adwords: [ 
     search: [ 
     short: [], 
     long: [] 
     ] 
    ] 
    ] 
) 

.MYの出力のように行っているが

{ 
    "pitch_points"=>{ 
    "adwords"=>{ 
     "search"=>{ 
     "short"=>["qwe"], 
     "long"=>[] 
     } 
    } 
    } 
} 

ですが、出力は長く、空です。

+0

"long" => [] [] work? – Boltz0r

+0

'params [:product] .permit!'を実行すると、すべてのパラメータが許可されます。 –

+0

@PardeepSaini許可はセキュリティ上の理由を導入しています。直接許可!私はこの許可を避けてくださいことをお勧めしたいと思います!オプションを直接。 – Sanket

答えて

1

明示的に許可することはできません。

documentationにチェックを入れると、強いパラメータは、許可されたスカラー型または許容されるスカラー型の配列のいずれかになります。配列は許容されたスカラー型ではないので、別の配列にネストされた配列をホワイトリストにすることはできません。

関連する問題