Журнал сервера Rails .ошибка возвращает ошибку, но ее сведения и сообщения пусты. Как я могу узнать, в чем заключается фактическая ошибка?

#ruby-on-rails #ruby #postgresql #logging #error-handling

Вопрос:

Итак, я имею дело с ошибкой, которую, я почти уверен, я сузил до ошибки сохранения объекта в определенном рабочем процессе.

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

Я действительно нашел ошибку, но она пуста. messages И details не храните никакой информации. Есть ли какой-либо способ получить дополнительную информацию об этом событии?

 21:22:54 rails.1   |    11:     puts "ATTEMPTING TO SAVE"
21:22:54 rails.1   |    12:     invoice.save!
21:22:54 rails.1   |    13:     puts "SAVED SUCCESFULLY"
21:22:54 rails.1   |    14:     byebug
21:22:54 rails.1   | => 15:   end
21:22:54 rails.1   |    16: end
21:23:04 rails.1   | (byebug) invoice.errors
21:23:04 rails.1   | #<ActiveModel::Errors:0x00007f47ecaa1640 @base=#<Invoice id: 18,
user_id: 51, invoiceable_type: "SubscriptionCart", invoiceable_id: 137, status: 
"scheduled", number: nil, period: nil, external_id: nil, external_status: nil, created_at: "2021-06-16 
13:23:56", updated_at: "2021-06-17 00:22:54", due_date: "2021-06-16",
metadata: nil, rejection_code: nil, retry_attempt: nil, next_retry_date: nil, 
last_retry_date: nil, expire_date: nil, external_service: "MercadoPago", 
external_type: nil, external_info: nil, account_id: 1, temp_due_date: nil, 
next_attempt_date: nil,     
last_attempt_date: nil, processing_stage: "not_processed", amount_cents: 454400, 
amount_currency: "ARS", desist_retrying: false>, @messages={}, @details={}>
 

Комментарии:

1. save здесь это не ваша проблема. Счет успешно сохраняется — в противном случае он выдаст исключение (потому что вы используете save! , а не save ) и не попадет в ваш byebug. Все объекты AR будут отвечать errors объектом Errors, тот факт, что сообщения пусты, просто говорит о том, что их нет и объект действителен.