Sie müssen wirklich etwas über Rails lernen und nicht direkt diese Datenbank ändern. Was ich getan habe, war, ein Rails-Buch zu finden und es zu lesen. Und irgendwann habe ich mir auch ein Ruby-Buch angesehen. Ich bin alt genug, um mich daran zu erinnern, als Bücher die einzige Möglichkeit waren, etwas über Computer zu lernen. Soweit ich weiß, gibt es viele Websites im Internet, die Ihnen ein Rails-Tutorial geben können. Ich denke, es gibt eine Möglichkeit, das Internet zu durchsuchen, um sie zu finden.
Hier ist eines, das ich gefunden habe:
So aktualisieren Sie Dinge mit Rails, aber das Lesen eines dieser Leitfäden gibt Ihnen schnell eine Vorstellung davon, wie es funktioniert.
t=Topic.find(123)
t.title='my new title'
t.save
# oder
t.update(title: 'my new title')
Wenn Sie Dinge über Rails tun, werden viele Prüfungen durchgeführt, ob Dinge funktionieren. Diese Dinge werden Sie normalerweise davon abhalten, große Fehler zu machen. Sie sollten diese Regeln wahrscheinlich nicht brechen, bis Sie sie verstehen.
Wenn Sie beispielsweise möchten, dass Benutzer über die API Themen in einer bestimmten Kategorie erstellen, müssen sie über die Rechte verfügen, ein Thema in dieser Kategorie zu erstellen. Wenn Sie wirklich möchten, dass ein von einem Benutzer erstelltes Thema in einer Kategorie existiert, für die er keine Rechte hat, dann erstellen Sie es in einer anderen Kategorie und lassen Sie es dann von einem Administrator verschieben (oder tun Sie es über Rails, was die Berechtigungen für Kategorien nicht erzwingt).
Obwohl dies leicht eine Ausnahme verursachen könnte (die Sie abfangen sollten), möchten Sie vielleicht find_by als Alternative verwenden, die nil zurückgibt, anstatt eine Ausnahme auszulösen, je nachdem, wie Sie die Dinge verwalten möchten.
So sind wir gleich. Ich musste etwas SQL mit einem komplizierten Inner Join und einem weiteren mit einem einfachen Union machen, bei dem mir die KI geholfen hat. Ich schüttelte den Kopf, wenn ich 1986 in meiner Datenbankklasse etwas mehr aufgepasst hätte, hätte ich gewusst, wie es geht.
Warum nicht die KI bitten, Rails-Befehle für Sie zu schreiben?
Für Standard-Abfragen wie select, where, sort, limit schreibe ich diese selbst, aber für alles Kompliziertere frage ich jetzt die KI. Ich habe die KI gefragt:
„Schreibe eine Abfrage, die eine Kategorie anzeigt und dann die Top 5 Themenstarter für diese Kategorie und die Anzahl der von ihnen gestarteten Themen auflistet.“
Und sofort gab sie zurück (dies ist eine Nicht-Discourse-DB):
WITH TopTopicStarters AS (
SELECT
c.id AS category_id,
c.name AS category_name,
u.name AS user_name,
COUNT(t.id) AS num_topics_started,
ROW_NUMBER() OVER(PARTITION BY c.id ORDER BY COUNT(t.id) DESC) AS rank
FROM topics t
JOIN categories c ON t.category_id = c.id
JOIN users u ON t.user_id = u.userid
GROUP BY c.id, u.name
)
SELECT
c.category_name,
tts.user_name,
tts.num_topics_started
FROM categories c
JOIN TopTopicStarters tts ON c.id = tts.category_id
WHERE tts.rank <= 5;
Keine Chance, dass ich das ohne viel Googeln und Ausprobieren hätte herausfinden können!