basic
params.permit(:name)
params.permit(:name => [])
params.require(:user).permit(:name)
params.require(:user).permit!
デフォルト値(指定の値がなかった場合の処理)
params.fetch(:user, {}).permit(:name)
ネストする場合
params.permit(:name, {:emails => []})
params.permit(:friends => [ :name, { :family => [ :name ], :hobbies => [] }])
params.permit(:name, {:emails => []}, :friends => [ :name, { :family => [ :_name ], :hobbies => [] }])
try
params.require(:product).permit(:name, data: params[:product][:data].try(:keys))
その他
params[:person].permitted? ? "untainted" : "tainted"
params[:person].permit(:name).permitted? ? "untainted" : "tainted"
他にもいろんな使いかたがあったら追記していきたいと思う。