[前][次][番号順一覧][スレッド一覧]

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