Date
veya Time
nesnesini seri hale getirmeye çalışırken ActiveJob::SerializationError
önlemek için temiz bir yol biliyor musunuz? yama Ben maymun gerektiğinden berbat olan (Job geri sonra load
argümanlar yükleme ve ne zamanSerializationError Rails ActiveJob Saat ve Tarih
- Çağrı Mareşal/JSON/YAML
dump
:yaşadım iki çözümden
şimdiye kadar üzeresiniz postacı iş) - Maymun yama
Date
veTime
şöyle:
/lib/core_ext/time.rb
class Time
include GlobalID::Identification
def id
self.to_i
end
def self.find(id)
self.at(id.to_i)
end
end
/lib/core_ext/date.rb da berbat
class Date
include GlobalID::Identification
def id
self.to_time.id
end
def self.find(id)
Time.find(id).to_date
end
end
. Daha iyi bir çözümü olan var mı?
o işin (ve neden) sadece Tarih veya Saat geçmek gerçekten gerekli mi? Bir ActiveModel'i, muhtemelen bir Tarih veya Zaman örneği içeren, işe bir parametre olarak iletmenin daha iyi olacağını düşünüyorum. (ActiveModels GlobalID :: Identification içerir, böylece seri hale gelirler) – sourcx
Hayır, gerçekten gerekli değil. Bu sadece uygun. Ve bunun üzerine, ActiveJob'u entegre etmeden önce DelayedJob ile çalıştı. Öyleyse, değişme işlevselliğinin aksine soyut olması gereken bir şeyle bütünleşmek için kodumu değiştirmem gerekecek gibi görünüyor. – kddeisz
Yalnızca Tarih/Saat nesnesini mi atadınız? Başka hiçbir şey? AFAIK, ActiveJob, aslında Marshal'ı, nesneyinizi serileştirmek için çağırır ve daha sonra bu nesneyi alıp geri çağırmak için söylediğin maymun yama gibi bir şeye ihtiyaç duyar. Mailerinizi gönderebilir misiniz? – lsdr