私はRails 5とActiveJobを使ってバックグラウンドタスクを処理しています。私は自分の仕事にas_json
でシリアライズオブジェクトを渡すためにしようとしていますが、私は次のエラーを受け付けております:ActiveJob :: SerializationError - サポートされていない引数のタイプ:Time/DateTime
ActiveJob::SerializationError (Unsupported argument type: Time):
ActiveJob::SerializationError (Unsupported argument type: DateTime):
私はActiveJobは、それらのタイプを処理していないため、一部のキューイング・システムに時間/ DateTimeオブジェクトを取らないことを理解しています。次のようにだから私はシリアライズしようとしているオブジェクトは、次のとおりです。
card = Card.first
=> #<Card id: 256, title: "quis", description: "Sunt corporis error laudantium veritatis impedit r...", due_date: "2016-12-15 12:00:00", slug: "quis", created_at: "2016-11-30 17:00:01", updated_at: "2016-11-30 17:00:01", list_id: 26, position: 0, period_type: "hours", period_length: 0.0, user_id: 1>
私は実行すると:
card.as_json
=> {"id"=>256, "title"=>"quis", "description"=>"Sunt corporis error laudantium veritatis impedit repellat quasi.", "due_date"=>Wed, 15 Dec 2016 12:00:00 UTC +00:00, "slug"=>"quis", "created_at"=>Wed, 30 Nov 2016 17:00:01 UTC +00:00, "updated_at"=>Wed, 30 Nov 2016 17:00:01 UTC +00:00, "list_id"=>26, "position"=>0, "period_type"=>"hours", "period_length"=>0.0, "user_id"=>1}
のcreated_at、updated_atのとDUE_DATEは、私がオーバーライドしようとしたActiveSupport::TimeWithZone
のすべてのインスタンスであります私は別のSOポストそれは助けにはならないで見つかった初期化子、次のコードを使用してこの:
class ActiveSupport::TimeWithZone
def as_json(options = {})
strftime('%Y-%m-%d %H:%M:%S')
end
end
as_json
がオブジェクト上で実行されている場合、誰もが日付として文字列を持っている可能性がありますか?
助けていただけたら幸いです!
ありがとうございました