IIC2143-2020-2 / syllabus

Syllabus de IIC2143 Ingeniería de Software 2020-2
35 stars 10 forks source link

Error con asociaciones (checkboxes con has_many through) #214

Closed lewebe closed 4 years ago

lewebe commented 4 years ago

Hola! Tengo tengo los modelos Carrete y Servicio unidos a traves de Serve con las asociacion has_many through. El tema es que en la vista new de carrete, definí un checkbox en el form para que se marquen los servicios que se quieren para ese carrete en especifico de la siguiente manera segun stack overflow: image

Esto me crea las checkboxes y envia los resultados de vuelta al controlador (en este caso, al metodo create de carrete). Sin embargo, al momento de pasarle los parametros a carrete lanza este error: image

Mi controlador de carrete se ve así: image

Sospecho que el error es que Carrete no me acepta meterle como param el array que se guarda como servicio_ids, pero segun muchas guias en internet esto no deberia ser el problema pues si las asociaciones de has_many, through: están bien hechas, Rails deberia crear automaticamente tuplas en la tabla "Serves" con el id del carrete y los ids de los servicios que eligió a través del checkbox. Por favor, llevo muchas horas con el mismo error que me impide avanzar :(

daleal commented 4 years ago

Hola! Me parece que el problema realmente es por la inflexión de la palabra serves. El singular de la palabra serves es serf y no serve. Puedes probarlo tu mismo! Ejecuta bundle exec rails console y, en la consola que se abre, prueba lo siguiente:

pry(main)> ActiveSupport::Inflector::singularize("serves")
=> "serf"

Por lo mismo, al buscar el archivo serf.rb dentro de los modelos y al buscar el modelo Serf falla, ya que nombraste Serve al modelo, y serve.rb al archivo. Suerte con lo que queda para la entrega!