Mi formulario de registro, que es un formulario para el modelo de Usuarios, toma un valor de cadena para la empresa. Sin embargo, acabo de hacer un cambio para que los usuarios pertenezcan a empresas. Por lo tanto, necesito pasar un objeto de Empresa al modelo de Usuarios.
Quiero usar el valor de cadena del formulario para obtener el objeto de Company:
@user.company = Company.find_by_name(params[:company])
Creo que lo anterior funciona, sin embargo, el formulario está pasando: empresa (que es una cadena) al modelo cuando llamo:
@user = User.new(params[:user])
Por lo tanto, quiero saber (y no puedo encontrar cómo) eliminar el parámetro: company antes de pasarlo al modelo de usuario.
fuente
model_params.delete :key_name
no funciona, ¿alguna idea de por qué?assin_params = params.dup.delete(:company)
. nunca elimine de los parámetros directamenteassign_params = params.dup; assign_params.delete(:company)
model_params
era una función, que sacó los parámetros relevantes deparams
. Así que cuando sedelete
demodel_params
que estás realmente sólo la supresión a partir del hash quemodel_params
regresa.