Rails - найти или создать - есть ли найти или построить? - PullRequest
61 голосов
/ 30 января 2011

Я сейчас использую:

XXX.find_or_create_by_uuid(XXXX)

Есть ли способ найти или построить?

Ответы [ 3 ]

90 голосов
/ 30 января 2011

Попробуйте XXX.find_or_initialize_by_uuid(XXXX)

17 голосов
/ 18 мая 2016

С Rails 4 это XXX.find_or_initialize_by(uuid: XXXX)

2 голосов
/ 20 октября 2016

В случае, если вы хотите сделать свой собственный (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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...