Beim Import nach Discourse gingen 100 Likes eines wichtigen Beitrags verloren (ich konnte sie nicht richtig scrapen). Ich möchte das Importskript in diesem Fall nicht erneut ausführen.
Wenn ich die Liste der Benutzer habe, die den Beitrag geliked haben, wie füge ich diese am besten hinzu? Gibt es einen Rake-Befehl?
Was ich tun würde, ist, das Importskript, das die Likes importiert, zu überprüfen, um zu sehen, was es tut, um die Likes hinzuzufügen, und dann das in der Rails-Konsole zu tun. Ich bin ziemlich sicher, dass es sich um eine PostAction handelt.
Ich bin ziemlich sicher, dass es keinen solchen Rake-Befehl gibt, da es sich um eine ziemlich ungewöhnliche Anfrage handelt (meistens würde ich einfach das Importskript erneut ausführen), aber ich habe es nicht nachgeschlagen.
Vielen Dank für die Antwort. Ich bin nervös, das Import-Skript erneut auszuführen, da es fast 6 Monate her ist und ich nicht sicher bin, welche Nebenwirkungen es in Randfällen haben könnte, in denen alte Daten mit neuen Daten interagieren.
Hier ist die Hilfsfunktion, die ich in meinem Import-Skript verwendet habe.
Hier ist der relevante Code
created_by = User.find_by(id: user_id_from_imported_user_id(params[:user_id]))
post = Post.find_by(id: post_id_from_imported_post_id(params[:post_id]))
if created_by && post
PostActionCreator.create(created_by, post, :like, created_at: params[:created_at])
created += 1
...
Juhu! Man weiß nie, ob eine Antwort, die so vage ist wie „Nun, was ich tun würde. . .“, von Nutzen sein wird.
Wenn Sie etwas in die Rails-Konsole einfügen, ist ein praktischer Trick zu wissen, dass Sie nicht in einen less-Pager weitergeleitet werden, um die Ergebnisse der letzten Anweisung zu sehen, wenn Sie Ihre Zeilen mit einem ; beenden. (Wenn Sie eine richtige Schleife schreiben oder ein Skript ausführen, benötigen Sie diesen Tipp nicht.)