Rails - 查找或创建 - 是否有查找或构建?

时间:2011-01-30 17:51:05

标签: ruby-on-rails

我目前正在使用:

XXX.find_or_create_by_uuid(XXXX)

有没有办法找到或建立?

3 个答案:

答案 0 :(得分:90)

尝试XXX.find_or_initialize_by_uuid(XXXX)

答案 1 :(得分:17)

自Rails 4以来,这是XXX.find_or_initialize_by(uuid: XXXX)

答案 2 :(得分:2)

如果您想制作自己的(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