はじめまして出沢さん。佐藤と申します。

こちらのサイトでネストしたStrong Parameters の記述方法が紹介されています。
http://www.techscore.com/blog/2013/01/29/rails4-%E3%81%AE-strong-parameters-%E3%81%A7%E3%83%AA%E3%82%AF%E3%82%A8%E3%82%B9%E3%83%88%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%82%92%E6%A4%9C%E8%A8%BC%E3%81%99%E3%82%8B/

params.permit(lips: [:opename,:proname,:time,:gele,:gain,:min,:max]) みたいな感じでどうでしょうか?



2013年12月7日 19:56 dezawa <dezawa@aliadne.net>:
出沢@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@ruby.ml.fdiary.net
使い方: http://QuickML.com/