ブログ

読んで思い出す。忘れるために書く

Q. Rails の params.permit に関わる最小限のコードを書きたい

A. ドキュメント ActionController::Parameters#permit を参照して、サンプルコードを動かす

require 'active_support/core_ext'
require 'action_controller/metal/strong_parameters'

params = ActionController::Parameters.new({
  person: {
    name: "Francesco",
    age:  22,
    pets: [{
      name: "Purplish",
      category: "dogs"
    }]
  }
})

permitted = params.permit(person: [ :name, { pets: :name } ])
permitted.permitted?                    # => true
permitted[:person][:name]               # => "Francesco"
permitted[:person][:age]                # => nil
permitted[:person][:pets][0][:name]     # => "Purplish"
permitted[:person][:pets][0][:category] # => nil

(非 Rails 環境の場合は当該ファイルを require して読み込む必要がある)

(ドキュメント上では params.permit についての説明なので require は省かれている)

これで Rails 環境でなくても「params.permit が上手く動かない」といった話を調べることができるようになった

Link