Railsのpermitメソッドについて、モデルに渡す以外のところで使おうと思ったら、中々うまくいかなので、質問させていただきます。
環境
Ruby 2.6.5
Ruby on Rails 5.2.0
CentOS 7.7(Docker)
やりたいこと
検索フォームから受け取った値をストロングパラメータで検証したい。
検索フォームから受け取ったパラメータをto_hashする必要があり、その際に、[params.permit!]みたいな記述で検証をパスしていたが、
受け取るパラメータのみで絞りたいので、permitを使いたい。
できない理由
children_controller.rb
def search Rails.logger.error("parameter ==== #{params.class}") params = params.permit( :paramA, :paramB, :paramC, ) params = params.to_hash end
上記のようにしてパラメータ検証しようとおもったが
undefined method ``permit' for nil:NilClass
が出力される。。
children_controller.rb
1Rails.logger.debug(params.class)とすると 2=> ActionController::Parameters
Paramertersオブジェクトに対してpermitするとエラーがでる?
モデル検証以外にpermitを使う際はpermit!で全部許可する指定がベターだと思う?のですが、
それ以外の場合上記のようにpermit(:paramA, :paramb...)としたい場合はどのような書き方をすればよいでしょうか?
回答2件
あなたの回答
tips
プレビュー