Rails Article.find 1 löst ActiveRecord :: StatementInvalid für die Legacy-Datenbank aus

8

Ich erstelle eine Rails-App über eine Legacy-Datenbanktabelle. Alles funktioniert gut lokal, aber auf dem Server traf ich diesen Fehler, wenn ich Article.find (1)

mache %Vor%

Die Legacy-Datenbank hat ein ID-Feld, jedoch beschreibt das Schema die ID mit

%Vor%

Beachten Sie, dass Article.find_by_id (1) den Datensatz ohne Probleme zurückgibt.

Irgendwelche Ideen, wie Sie das beheben können?

    
user208769 14.05.2013, 11:39
quelle

2 Antworten

19

AKTUALISIERT - Siehe unten

Es stellt sich heraus, das Hinzufügen des folgenden zu dem Modell behebt dies:

%Vor%

Vermutlich, weil rails die Tabelle nicht erstellt hat, weiß sie nicht, welches Feld der Primärschlüssel ist. Es scheint jedoch ein wenig seltsam, eine fundierte Vermutung mit einer Warnung - oder sogar eine freundlichere Fehlermeldung - würde geschätzt werden.

UPDATE: Schienen 3.2+ Die obige Methode ist veraltet. Die neue Methode ist wie folgt:

%Vor%

Danke an @lboix für das Aufzeigen!

    
user208769 14.05.2013, 11:42
quelle
4

Scheint, dass diese Option aktualisiert wurde jungs: set_primary_key-Fehler in Rails

Ich hoffe, es wird helfen:)

Pass auf dich auf

    
lboix 24.03.2014 02:29
quelle