Attualmente sto usando:Rails - find or create - c'è una ricerca o costruzione?
XXX.find_or_create_by_uuid(XXXX)
C'è un modo per farlo trovare o costruire?
Attualmente sto usando:Rails - find or create - c'è una ricerca o costruzione?
XXX.find_or_create_by_uuid(XXXX)
C'è un modo per farlo trovare o costruire?
Prova XXX.find_or_initialize_by_uuid(XXXX)
Dal Rails 4 questo è XXX.find_or_initialize_by(uuid: XXXX)
Nel caso in cui si vuole fare il proprio (5 Rails):
class ApplicationRecord < ActiveRecord::Base
def self.find_or_build_by hash
result = all.where(hash)
result.present? ? result : none.build(hash)
end
end
Nota: Non è possibile utilizzare un botto operatore di ''! con 'find_or_initialize_by' come puoi con' find_or_create_by'. Questo perché il botto viene usato per generare un'eccezione se c'è un problema nel salvataggio dell'oggetto, che non si applica quando si inizializza. –