как дифференцироваться обысканный или созданный first_or_create

Я хочу дифференцироваться обысканный или созданный first_or_create.

record = MasterRecord.where(:name=>'test_data').firest_or_create

# and i want differentiate searched or created like this.
# but there is no created_record? method
if record.created_record?
    render :status=>200, :json => record.to_json
else
    render :status=>409, :json => record.to_json
end

как я делаю это?

3
nl ja de

2 ответы

Работа должна будет использовать first_or_initialize вместо этого first_or_create и затем используют new_record? следующим образом:

record = MasterRecord.where(:name=>'test_data').first_or_initialize

created_record = record.new_record?
record.save! if record.new_record?

if created_record
    render :status=>200, :json => record.to_json
else
    render :status=>409, :json => record.to_json
end
5
добавлено
Потрясающий спас мой день!
добавлено автор Abs, источник

Если отчет не может быть найден, возвращение будет [] , таким образом, можно играть с сигнал . Что-то вроде этого:

created = false
record = MasterRecord.where(:name=>'test_data').tap {|x| created = true if x.empty?}.first_or_create
if created
  ...
3
добавлено
сигнал
добавлено автор Yevgeniy Anfilofyev, источник
Я did' nt знают сигнал. Я искал сигнал, и я знаю it' s очень хороший. спасибо.
добавлено автор vikke, источник
pro.ruby
pro.ruby
1 181 участник(ов)

Язык программирования Ruby Additional docs: https://rubyreferences.github.io/rubyref/ Invite: https://telegram.me/joinchat/Be4rsT2NuB3CyJaF26j1kA Кто хочет компилировать: @crystal_ru (его синтаксис основан на Ruby) Участник @proDOT

Ruby, Rails, Hanami | dry-rb
Ruby, Rails, Hanami | dry-rb
1 180 участник(ов)

https://telegram.me/rubyjob - Ruby Job По вопросам - @eugene_shved

Ruby School .us
Ruby School .us
1 045 участник(ов)

Чат-болталка для учеников руби-школы и не только. Правила: https://telegra.ph/Pravila-chata-Rubi-shkoly-03-13

Random Ruby Chat
Random Ruby Chat
589 участник(ов)

Правила публикации вакансий: https://t.me/codenamecrud/60865

Rubyata
Rubyata
333 участник(ов)

Коммюнити Ruby и Ruby On Rails Флуд не приветствуются. Вакансии можно публиковать только и ТОЛЬКО по пятницам с хештегом #вакансия.

Ruby Talks
Ruby Talks
236 участник(ов)

Национальная Флеймотека

RubyRush
RubyRush
189 участник(ов)

rubyrush.ru программирование для самых новичков

Rails Chat
Rails Chat
87 участник(ов)

You are welcome to discuss Ruby On Rails development process and other stuff