Laut dem ActiveJobs-Handbuch , Abschnitt 8, heißt es:
Dies funktioniert mit jeder Klasse, die GlobalID :: Identification mischt, die standardmäßig in Active Model-Klassen gemischt wurde.
Mongoid::Document
mischt ActiveModel::Model
, aber ich kann GlobalID::Identification
nicht in den included_modules finden.
Wo ist GlobalID::Identification
definiert?
Kann ich effektiv Mongoid::Document
für meine ActiveJobs verwenden?
In den Leitfäden ist ein Fehler aufgetreten. GlobalID::Identification
wurde in ActiveRecord
gemischt. Wenn Sie GlobalID::Identification
in Ihre Mongoid-Dokumente mixen, wird es automatisch funktionieren, da GID erfordert, dass die Instanz auf id
antwortet (die uniq-Kennung zurückgibt) und die Klasse auf find
antwortet (die Übergabe eines id
gibt einen Datensatz zurück ).
Um jedem, der das gleiche Problem hat, mehr Informationen zur Verfügung zu stellen, können Sie es einfach einrichten, indem Sie GlobalID::Identification
zu Ihren Modellen hinzufügen.
Ich habe das tatsächlich getan, indem ich Mongoid::Document
erneut geöffnet habe:
Allerdings habe ich manchmal sehr seltsame Fehler, mit ActiveJob
, die nicht wissen, wie ich meine Modelle serialisieren soll. Ich habe versucht, es zu debuggen, aber wann immer ich in ActiveJob
code kam, hatte ich:
Aber ActiveJob :: Arguments.serialize_argument didn ' t funktionieren wie erwartet.
Die Problemumgehung ist auch, Mongoid::Relations::Proxy
:
Tags und Links ruby mongoid ruby-on-rails activemodel rails-activejob