我现在使用:
XXX.find_or_create_by_uuid(XXXX)
有没有办法找到或建立?
试试 XXX.find_or_initialize_by_uuid(XXXX)
XXX.find_or_initialize_by_uuid(XXXX)
从 Rails 4开始,这就是 XXX.find_or_initialize_by(uuid: XXXX)
XXX.find_or_initialize_by(uuid: XXXX)
如果你想自己做(Rails 5) :
class ApplicationRecord < ActiveRecord::Base def self.find_or_build_by hash result = all.where(hash) result.present? ? result : none.build(hash) end end