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?
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!
Scheint, dass diese Option aktualisiert wurde jungs: set_primary_key-Fehler in Rails
Ich hoffe, es wird helfen:)
Pass auf dich auf
Tags und Links ruby-on-rails-3 activerecord postgresql exception