Rails-find 或 create-有 find 或 build 吗?

我现在使用:

XXX.find_or_create_by_uuid(XXXX)

有没有办法找到或建立?

19366 次浏览

试试 XXX.find_or_initialize_by_uuid(XXXX)

从 Rails 4开始,这就是 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