Ist Mongoid :: Document eine GlobalID :: Identifikation für ActiveJobs?

9

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.

  1. Wo ist GlobalID::Identification definiert?

  2. Kann ich effektiv Mongoid::Document für meine ActiveJobs verwenden?

Geoffroy 07.01.2015, 13:48
quelle

3 Antworten

15

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 ).

    
bcd 07.01.2015, 14:29
quelle
6

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.

%Vor%

Ich habe das tatsächlich getan, indem ich Mongoid::Document erneut geöffnet habe:

%Vor%

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:

%Vor%

Aber ActiveJob :: Arguments.serialize_argument didn ' t funktionieren wie erwartet.

Die Problemumgehung ist auch, Mongoid::Relations::Proxy :

erneut zu öffnen %Vor%     
Geoffroy 01.02.2015 14:38
quelle
6

Setzen Sie etwas in Ihren Initialisierer:

%Vor%     
sandstrom 24.03.2016 09:45
quelle