actualmente estoy usando:Rieles: buscar o crear: ¿hay un hallazgo o construcción?
XXX.find_or_create_by_uuid(XXXX)
¿Hay una manera de hacer encontrar o construir?
actualmente estoy usando:Rieles: buscar o crear: ¿hay un hallazgo o construcción?
XXX.find_or_create_by_uuid(XXXX)
¿Hay una manera de hacer encontrar o construir?
Trate XXX.find_or_initialize_by_uuid(XXXX)
Desde Carriles 4 esto es XXX.find_or_initialize_by(uuid: XXXX)
En caso de que quiera hacer su propia (carriles 5):
class ApplicationRecord < ActiveRecord::Base
def self.find_or_build_by hash
result = all.where(hash)
result.present? ? result : none.build(hash)
end
end
Nota: No se puede utilizar una explosión '' operador con 'find_or_initialize_by' como puedes con' find_or_create_by'. Esto se debe a que el bang se usa para generar una excepción si hay problemas para guardar el objeto, lo que no se aplica cuando se está inicializando. –