Как отловить записи, которые терпят неудачу при попытке создать в Rails - PullRequest
0 голосов
/ 21 мая 2018

Я создаю новые записи и хочу иметь возможность отследить те, которые выдают ошибку, и добавить их в свой журнал активности, чтобы я мог посмотреть на них и узнать, почему они могли потерпеть неудачу.

Что будетлучший способ сделать это?

В настоящее время я создаю категории, передавая массив категорий.

Category.create(categories)

У меня есть проверка имени категории, чтобы убедиться, что она уникальна.

Я хотел бы увидеть, какие из них потерпели неудачу, а также иметь общее количество созданных и потерпевших неудачу.Например ...

  • xyz не удалось создать.
  • Создано 99/100 категорий, не удалось 1.

Я использую простое действиежурнал который я сделал сам.И хотелось бы, чтобы эти данные были сохранены в "log_msg"

ActivityLog.create(:act_type => "Insert", :updated_by => "System", :activity => log_msg, :act_tstamp => Time.now)

Любые предложения будут высоко оценены.

1 Ответ

0 голосов
/ 21 мая 2018

Вы можете настроить этот код в соответствии со своими потребностями:

invalid_categories = []

categories.each do |category|
  begin
    Category.create!(category)
  rescue ActiveRecord::RecordInvalid => exception
    invalid_categories << category
  end
end

log_msg = invalid_categories.map { |category| "#{category} failed to be created" }
log_msg << "Created #{categories.size - invalid_categories.size}/#{categories.size}, #{invalid_categories.size} failed"
log_msg = log_msg.join("\n")

puts log_msg # log somehow the message

Также взгляните на эту статью из-за:

Rails делает много вещей, но проверки целостности данных не являются одним из них.Ваша реляционная база данных предназначена для обеспечения целостности данных

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...