update rails multiple create ruby-on-rails ruby-on-rails-4 associations

ruby-on-rails - multiple - find or create rails 5



Rails 4 find or create by method no funciona (3)

Este método está en desuso en los rieles 4.

Mensaje de lanzamiento de Rails4:

Obsoleto la antigua API de buscador basada en hash. Esto significa que los métodos que previamente aceptaron "opciones de buscador" ya no funcionan.

Es un método obsoleto, pero debería funcionar. Tal vez, Rails no lo esté apoyando ahora.

Puede obtener más información, haga clic aquí y marque 11.2 Deprecations .

Tengo una asociación de uno a muchos entre puestos de trabajo y empresas y funciona bien. En la vista de formulario de trabajo, tengo text_field para el nombre de la compañía con una función de autocompletar. El autocompletado funciona bien, pero find_or_create_by no crea una nueva compañía si pongo un nombre de compañía que no existe en la lista de autocompletar.

def company_name company.try(:name) end def company_name=(name) @company = Company.find_or_create_by(name: name) end


Por favor, eche un vistazo a esta respuesta .

Lo que solía ser

@company = Company.find_or_create_by_name(name)

en Rails 4 es ahora

@company = Company.find_or_create_by(name: name)

Otra forma de hacer esto en Rails 4 sería:

@company = Company.where(name: name).first_or_create


Company.find_or_create_by(name: name)

Debería funcionar de la caja. Lo único que puede evitar que cree un registro son los errores de validación.

Pruebe esto en la rails console para verificar si funciona o no. Y revise los errores de validación también.

name = "YOUR TEXT FOR NAME ATTRIBUTE" c = Company.find_or_create_by(name: name) puts c.errors.full_messages