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... ]