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_nameno 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_paramsera una función, que sacó los parámetros relevantes deparams. Así que cuando sedeletedemodel_paramsque estás realmente sólo la supresión a partir del hash quemodel_paramsregresa.Probablemente deberías usar hash, excepto
Logra 2 cosas: le permite excluir más de 1 clave a la vez y no modifica el hash original.
fuente
"-1"como clave? {"utf8" => "✓", "_method" => "parche", "autenticity_token" => "VtY ...", "folleto" => {"title" => "Hola mundo", "profilings_attributes" => {"-1" => {"member_profile_id" => "3"}, "0" => {"porcentaje" => "10.0", "descripción" => "¡Alguna descripción!", "_Destroy" = > "false", "id" => "10"}, "1" => {...}}, "sponsorings_attributes" => {"-1" => {"sponsor_id" => "2"}, "0" => {"folleto_id" => "La forma correcta de lograr esto es usando
strong_paramsDe esta manera, tiene más control sobre qué parámetros deben pasarse al modelo
fuente
esto eliminará los parámetros de la URL
fuente
Para que sea posible eliminarlo, puede hacer una nota :
Ahora puedes hacer:
fuente