This is part of the Semicolon&Sons Code Diary - consisting of lessons learned on the job. You're in the workflows category.
Last Updated: 2024-11-23
I was debugging some failed tests in which I had an array of objects, only some of which seemed to validate.
reports.map do |report|
FinancialTransactionsReport.create!(download: report)
end
class FinancialTransactionsReport < ApplicationRecord
has_one_attached :download
validates :download, attached: true
...
end
All three reports were valid, yet only the first would validate. I
went on a wild goose chase, questioning how the Rails-built in ActiveStorage
uses background jobs, as well as searching for possible leakage of blobs between
my test cases.
It turned out the solution was simple:
The first object, which validated, was not an instance of
FinancialTransactionsReport
. It was, instead, an object with a similar
name, something like PayPalFinancialTransactions
. My eyes glazed over these
blocky names, but I should have considered this possibility ("that the object I
am working with is not the long I expect") before jumping to far-out conclusions.