Questa potrebbe essere più una domanda ruby quindi domanda di rails ma sono abbastanza sicuro di essere stato in grado di farlo in un'applicazione di rubino alla vaniglia.Modifica hash rubino in posizione (parametri forti rotaie)
Ho definito parametri forti.
def trip_params
params.require(:trip).permit(:name, :date)
end
Ora ottengo quei parametri in un metodo di controllo. Voglio farlo.
def save
trip_params[:name] = 'Modifying name in place'
#trip_params[:name] still equals original value passed
end
Questo non funziona mai. Il nome non cambia mai. BTW: Il tipo di trip_params è ActionController :: Parametri
Se eseguo uno script ruby standard, funziona.
test = {}
test[:name] = "blah"
test[:name] = "ok"
puts test #{:name=>"ok"}
Is Trip è un record attivo? Potrebbe essere necessario salvarlo esplicitamente nel database: '@ trip.save' – Daiku
Ho preso la parte Trip.new. Non lasciarti distrarre. Sto cercando di modificare l'hash ActionController :: Parameters sul posto. –