Jährlings-Badge
Christian Kruse
- bug
- zu diesem forum
- zur info
Hallo zusammen,
heute sind die Jährlings-Badges ein paar mal hust vergeben worden. Das war ein Bug in der Foren-Software, der hervorgerufen wurde durch eine fehlerhaft generierte SQL-Query.
Im User-Model definiere ich den Zusammenhang zwischen Usern und Badges so:
has_many :badge_users, -> { order(:created_at) }, dependent: :delete_all,
foreign_key: :user_id
has_many :badges, through: :badge_users
Das führt dazu, dass die Liste der User bei den Badges immer aufsteigend nach Datum sortiert ist, weil die Abfrage nach badge_users
immer aufsteigend sortiert ist nach created_at
. Nun habe ich aber, um zu prüfen, wann der letzte Jährlings-Badge vergeben wurde, folgenden Code verwendet:
last_yearling = user
.badge_users
.where(badge_id: yearling.badge_id)
.order(created_at: :desc)
.first
Da aber das eine composable query ist, wurde das Sortieren aus dem User-Model nicht überschrieben sondern ergänzt, so dass diese Query dabei rauskam:
SELECT "badges_users".*
FROM "badges_users"
WHERE
"badges_users"."user_id" = 1
AND
"badges_users"."badge_id" = 13
ORDER BY
"badges_users"."created_at" ASC,
"badges_users"."created_at" DESC
LIMIT 1
Statt also den letzten Jährlings-Badge herauszusuchen wurde immer wieder der gleiche Jährlings-Badge von letztem Jahr, als das Feature eingeführt wurde, herausgesucht.
Ich habe das vorhin gefixed (ein Deployment über Edge, argh, was für ein Krampf), aber die überflüssigen Badges werde ich wohl erst Freitag oder Samstag löschen können, da ich morgen einen großen Teil des Tages in Besprechungen verbringen werde und den Rest des Tages im Auto sitzen werde…
Danke an die Problem-Melder 😀
LG,
CK
Hallo Christian Kruse,
ein Deployment über Edge, argh, was für ein Krampf
Ach, es gibt schlimmere Browser. 😝
Bis demnächst
Matthias
Hallo Matthias,
ein Deployment über Edge, argh, was für ein Krampf
Ach, es gibt schlimmere Browser. 😝
Auf dem Tablet ist Edge sogar recht brauchbar: Schnell und das Zoomen wie am Smartphone funktioniert: einfach nur Ausschnitt vergrößern, bei Firefox hat Pinch-to-Zoom die gleichen Auswirkungen wie Strg + ...
Trotzdem kein Grund, gleich komplett auf Windows 10 und Edge umzusteigen :-)
Gruß
Julius
hallo
Ich hätte da auch noch einen Mini-Bug, der gefixt werden darf, wenn du mal nichts mehr mit dir anzufangen weisst.
Ich kann ja hier ohne Javascript so ziemlich alles machen. Wenn ich aber ein Posting erfolgreich abgeschickt habe, kommt die Bestätigungsmeldung, und die kann ich ohne Javascript nicht mehr wegklicken. Hier gilt eigentlich die Regel: was man ohne Javascript beginnt, soll man auch ohne Javascript zu Ende führen.
danke.
Hallo beatovich,
Ich kann ja hier ohne Javascript so ziemlich alles machen. Wenn ich aber ein Posting erfolgreich abgeschickt habe, kommt die Bestätigungsmeldung, und die kann ich ohne Javascript nicht mehr wegklicken.
den kannst du melden, dann geht das nicht so schnell unter wie hier im Forum.
Gruß
Julius
Hallo beatovich,
Ich kann ja hier ohne Javascript so ziemlich alles machen. Wenn ich aber ein Posting erfolgreich abgeschickt habe, kommt die Bestätigungsmeldung, und die kann ich ohne Javascript nicht mehr wegklicken.
In der Tat… das wird auch nie gehen 😉 sie verschwindet beim nächsten Reload oder wenn du eine andere Seite öffnest.
Hier gilt eigentlich die Regel: was man ohne Javascript beginnt, soll man auch ohne Javascript zu Ende führen.
Diese Argumentation ist mir in diesem Zusammenhang schleierhaft.
LG,
CK
@@Christian Kruse
Wenn ich aber ein Posting erfolgreich abgeschickt habe, kommt die Bestätigungsmeldung, und die kann ich ohne Javascript nicht mehr wegklicken.
In der Tat… das wird auch nie gehen 😉
Klar geht das. Die Meldung erscheint als eigenes Dokument in einem Iframe. Außerdem in diesem Dokument: ein Meta-Refresh auf eine leere Seite. *undweg*
LLAP 🖖
Hallo Gunnar,
ihr beide versteht den Unterschied zwischen „das wird nie möglich sein” und „das ist technisch nicht möglich?” 😉
LG,
CK
Hallo Christian Kruse,
Wenn ich aber ein Posting erfolgreich abgeschickt habe, kommt die Bestätigungsmeldung, und die kann ich ohne Javascript nicht mehr wegklicken.
In der Tat… das wird auch nie gehen 😉 sie verschwindet beim nächsten Reload oder wenn du eine andere Seite öffnest.
Klar geht das. Die Meldung erhält eine ID und wird per target fokussiert. Sobald man drauf klickt, wird das target entfernt. 😉 *undweg*
Bis demnächst
Matthias
Hallo Christian,
[…] aber die überflüssigen Badges werde ich wohl erst Freitag oder Samstag löschen können
[x] done
LG,
CK
hallo
hmmm
Hallo beatovich,
hmmm
Tja, du bist halt ein Urgestein.
Bis demnächst
Matthias
Tja, du bist halt ein Urgestein.
= fördert bisher unbekannte Fosilien zutage.
hallo
Browser Cache ganz geleert... ... leider ist immer noch gleiches Verhalten...
Hallo beatovich,
hmmm
Hm? Du meinst, weil du 8 davon hast? Dein Registrierungsdatum ist 08.05.2008 19:21.
LG,
CK
hallo
Hm? Du meinst, weil du 8 davon hast? Dein Registrierungsdatum ist 08.05.2008 19:21.
Das überrascht mich eigentlich, da ich gewiss ab 2003/4 hier gepostet habe. Es ist aber möglich, dass ich die ersten Jahre keinen Account hatte. Und an einen früheren Account-Wechsel kann ich mich nicht erinnern.
Hallo beatovich,
Das überrascht mich eigentlich, da ich gewiss ab 2003/4 hier gepostet habe. Es ist aber möglich, dass ich die ersten Jahre keinen Account hatte. Und an einen früheren Account-Wechsel kann ich mich nicht erinnern.
Bis demnächst
Matthias
hallo
Erzeugt einiges befremden ggg kommt davon, wenn man Accounts hijacked.
PS: habe mal im WIKI bezüglich noscript rumgewütet.