Ich bringe gerade meine Tochter zur Schule. Anschließend habe ich heute Vormittag noch einige Termine. Es wird etwas Zeit in Anspruch nehmen, das zu untersuchen.
Es sieht so aus, als ob einige Datenbankspalten möglicherweise nicht ordnungsgemäß migriert wurden. Diese Version hat mehrere neue Spalten zu den bestehenden Tabellen hinzugefügt. Können Sie bitte Folgendes ausführen:
cd /var/discourse && ./launcher rebuild app
Die Verwendung der Schaltfläche „Aktualisieren" im Panel wendet keine Datenbank-Migrationen an – ein vollständiger Neuaufbau ist erforderlich, wenn das Plugin neue Spalten hinzufügt.
Vielen Dank für Ihre Geduld. Wir werden das Problem lösen!
Können Sie das bitte zuerst ausführen und die Ausgabe posten?
./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_challenges\").map(&:name)"'
root@segredin-app:/var/www/discourse# su discourse -c 'cd /var/www/discourse && bundle exec rails runner "puts ActiveRecord::Base.connection.columns(\"daily_cha llenges\").map(&:name)"'
id
topic_id
hashtag
start_date
end_date
check_ins_needed
description
created_at
updated_at
final_post_sent
weekly_post_enabled
weekly_post_day
weekly_post_hour
award_badge
badge_name
badge_id
check_in_interval
week_start
category_id
schauen Sie sich dies an
ActiveModel::UnknownAttributeError (unbekanntes Attribut 'challenge_timezone' für DailyChallenge.) app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'
Es scheint, dass Ihnen die DB-Spalte challenge_timezone fehlt. Können Sie Folgendes ausführen:
./launcher enter app
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "ActiveRecord::Base.connection.add_column(:daily_challenges, :challenge_timezone, :string, default: \"UTC\") unless ActiveRecord::Base.connection.column_exists?(:daily_challenges, :challenge_timezone)"'
Dadurch sollte sie hinzugefügt werden. Ich werde untersuchen, warum sie nicht hinzugefügt wurde, und die Dateien aktualisieren.
In Ordnung, es bleibt nur noch übrig, aber ich warte auf seine Korrektur
ActiveModel::UnknownAttributeError (unbekanntes Attribut 'challenge_timezone' für DailyChallenge.)
app/controllers/application_controller.rb:447:in 'block in ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:447:in 'ApplicationController#with_resolved_locale'
app/controllers/application_controller.rb:1098:in 'ApplicationController#ensure_dont_cache_page'
lib/middleware/omniauth_bypass_middleware.rb:35:in 'Middleware::OmniauthBypassMiddleware#call'
lib/middleware/crawler_hooks.rb:11:in 'Middleware::CrawlerHooks#call'
lib/content_security_policy/middleware.rb:12:in 'ContentSecurityPolicy::Middleware#call'
lib/middleware/anonymous_cache.rb:420:in 'Middleware::AnonymousCache#call'
lib/middleware/csp_script_nonce_injector.rb:12:in 'Middleware::CspScriptNonceInjector#call'
config/initializers/008-rack-cors.rb:14:in 'Discourse::Cors#call'
lib/middleware/default_headers.rb:13:in 'Middleware::DefaultHeaders#call'
config/initializers/100-quiet_logger.rb:20:in 'DiscourseRackQuietAssetsLogger#call'
config/initializers/100-silence_logger.rb:29:in 'SilenceLogger#call'
lib/middleware/enforce_hostname.rb:23:in 'Middleware::EnforceHostname#call'
lib/middleware/request_tracker.rb:321:in 'Middleware::RequestTracker#call'
lib/middleware/overload_protections.rb:22:in 'Middleware::OverloadProtections#call'
lib/middleware/processing_request.rb:14:in 'Middleware::ProcessingRequest#call'
Um sicherzustellen, dass Sie sich im richtigen Verzeichnis befinden, führen Sie zunächst Folgendes aus:
cd /var/discourse && ./launcher enter app
Führen Sie dann Folgendes aus:
su discourse -c 'cd /var/www/discourse && bundle exec rails runner "ActiveRecord::Base.connection.add_column(:daily_challenges, :challenge_timezone, :string, default: \"UTC\") unless ActiveRecord::Base.connection.column_exists?(:daily_challenges, :challenge_timezone)"'
Nachdem Sie dies ausgeführt haben, können Sie „exit" eingeben, um die App zu verlassen.
Führen Sie auf der Webseite einen harten Neuladevorgang durch (Strg-Umschalt-R) und versuchen Sie es erneut. Falls dies nicht funktioniert, werde ich in Kürze eine Korrektur bereitstellen.
Ich bin in einem Meeting. Ich werde mich bald melden.
Ich habe gerade ein Update veröffentlicht. Sie sollten es über das Admin-Panel aktualisieren können. Falls das nicht funktioniert, müssen Sie möglicherweise Folgendes ausführen:
./launcher rebuild app
Es funktioniert

WOOOO!!! Danke, dass du bei mir geblieben bist und mir geholfen hast, das zu lösen!!

Gibt es als nächsten Schritt einige neue Funktionen? Ich möchte Ihnen einige Ideen geben.
Serien mit Münzen und Abzeichen sowie ein Bereich, um die eigenen Statistiken zu verfolgen.
Jedenfalls liebe ich es und warte auf mehr ![]()
Ich arbeite derzeit an diesem Teil. Es wird im Grunde ein „Bot" sein, den du erstellst (in Wirklichkeit nur ein Benutzerkonto). Das Plugin überwacht Erwähnungen des Bots. Wenn es diese erkennt, führt es die Aktion aus. Zum Beispiel:
Bot-Name: ChallengeBot
Jemand tippt:
@ChallengeBot status
Der Bot sendet ihm eine Direktnachricht mit seinem aktuellen Status in der Herausforderung.
Der Bot wird auch einige weitere Optionen haben.
Wie kann ich diese Informationen an einem anderen Ort anzeigen lassen oder im Benutzer-Card erscheinen lassen? Falls es einen Weg dafür gibt, wäre das sehr hilfreich.
v1.4.0 ist jetzt verfügbar!
Dieses Release fügt ChallengeBot hinzu – ein optionales Bot-Konto, das DM-gesteuerte Engagement-Funktionen für Ihre Herausforderungen bietet.
Neu in diesem Release:
- Bestätigungs-DMs beim Check-in – Mitglieder erhalten nach jedem erfolgreichen Check-in eine DM von ChallengeBot, die ihre aktuelle Serie und einen Link zum Herausforderungsthema anzeigt.
- Erinnerungs-DMs – Teilnehmer, die seit 2 oder mehr aufeinanderfolgenden Tagen (bei täglichen Herausforderungen) nicht gecheckt haben oder bis zum letzten Tag der Woche (bei wöchentlichen Herausforderungen) keinen Check-in durchgeführt haben, erhalten eine sanfte Erinnerung von ChallengeBot. Enthalten sind ihre aktuelle Check-in-Anzahl und das Ziel. Pro Herausforderung umschaltbar, standardmäßig aktiviert.
- @Erwähnungs-Befehle – Mitglieder können
@ChallengeBotin jedem aktiven Herausforderungsthema erwähnen, um persönliche Statistiken per DM zu erhalten. Der Bot antwortet niemals direkt im Thema selbst. Verfügbare Befehle:status,leaderboard,streak,checkins,progress,help. Begrenzt auf 10 Befehle pro Benutzer pro Stunde. - Leaderboard- und Endergebnis-Beiträge – Wenn ChallengeBot konfiguriert ist, werden wöchentliche Leaderboard-Beiträge und Beiträge mit den Endergebnissen nun vom Bot-Konto statt vom Systemkonto gesendet.
- Neue Website-Einstellung –
daily_challenge_bot_username - Neues Herausforderungsfeld – Umschalter für Erinnerungs-DMs (standardmäßig aktiviert)
Die Einrichtung von ChallengeBot ist optional – alle bestehenden Funktionen funktionieren weiterhin ohne ihn. Weitere vollständige Einrichtungsanweisungen finden Sie im Hauptbeitrag.
Hinweis: Dieses Release enthält eine Datenbankmigration. Die Schaltfläche „Update“ im Panel wendet sie automatisch an.

