Quando salvi i dati di un form, non ti puoi fidare di ciò che arriva. Gli strong parameters impongono una whitelist: solo i campi che permetti esplicitamente passano.
class LaunchesController < ApplicationController
def create
@launch = Launch.create!(launch_params)
redirect_to @launch
end
private
def launch_params
params.require(:launch).permit(:name, :provider, :net)
end
end
require(:launch) pretende che ci sia la chiave giusta; permit(...) lascia passare solo i campi elencati. Tutto il resto viene scartato silenziosamente.
Perché è vitale: senza questa barriera, un utente malintenzionato potrebbe inviare nel form un campo non previsto, per esempio admin: true o role: "superadmin", e ritrovarsi privilegi che non doveva avere. È il famoso "mass assignment", una vulnerabilità classica.
La regola: permetti solo ciò che l'utente deve davvero poter impostare. Il buttafuori all'ingresso decide chi entra, non chi bussa.