rails:3947
From: dezawa <dezawa@a...>
Date: Sun, 08 Dec 2013 18:45:21 +0900
Subject: [rails:3947] Re: Strong Parametersで困っています
解決しました
params.require(:lips).permit!
でどのパラメータも通します。
###
PS
opename の様な一次元のものは
permit([ opename: ("1".."100").to_a, ,,,]
でよかったのですが、rateの様な2次元のものが
うまく行きませんでした。
"rate" =>[ {"1" => ("1".."100").to_a ,
"2" => ("1".."100").to_a
} ]
とか、そのようになるように
"rate" =>Hash[*("1".."100").
map{|i| [i,("1".."100").to_a]}.flatten(1)
]
とか試みたのですが駄目でした。
色々探したのですが、例のみで文法の説明に行き当たりません。
今回は permit! でも問題なかったのでそれで逃げますが、
そのうち厄介な構造を持ったものを扱うことになる時の準備を。。。
文法はどこかにあるでしょうか。
どなたか rate の様な場合の書き方を御教授いただけないでしょうか
現時点で見たところは以下です
http://api.rubyonrails.org/ での
Strong Parameters
ActionController::Parameters#permit
https://github.com/rails/strong_parameters/blob/master/README.md
とそこから
http://guides.rubyonrails.org/action_controller_overview.html#more-examples
(2013年12月07日 19:56), dezawa wrote:
> 出沢@Rails4に移行中です
>
> 非ActiveRecord model でこんな params が来ます。
> {"lips"=>{ "opename"=>{"1"=>"a", "2"=>"b"},
> "time"=>{"1"=>"2000", "2"=>"2000,
> "proname"=>{"1"=>"P", "2"=>"Q"},
> "rate"=>{"1"=>{"1"=>"12", "2"=>"23"},
> "2"=>{"1"=>"15", "2"=>"22"}
> }
> }
> }
>
> これは抜粋で、opename のような構造のものがあと4つあります。
> この見本では要素は2つですが、最大100までの可変です。
> その場合rateの要素は100要素が100となります。1万。
>
> 手抜きして
> params.require(:lips).permit([:opename,:proname,:time,:gele,:gain,:min,:max]))
> と書いたらだめですね、全部 Unpermitted parameters になってしまいました。
>
> この様な時、
> permit([ opename: ("1".."100").to_a,
> proname: ("1".."100").to_a,
> :
> :
> )
> と全部記述せねばならないのでしょうか。
>
> 非ActiveRecord model なのでマスアサインメント脆弱性は
> 無いと思うので(ですよね)Strong Parametersをパス
> したいのですが。。。。
>
> --
> ML: rails@r...
> 使い方: http://QuickML.com/
>
--
ML: rails@r...
使い方: http://QuickML.com/
3943 2013-12-07 11:56 [dezawa@a... ] Strong Parametersで困っています @ 3945 2013-12-08 04:34 ┣[ryz310@g... ] 3946 2013-12-08 09:24 ┃┗[dezawa@a... ] -> 3947 2013-12-08 10:45 ┗[dezawa@a... ]