2016-07-07 6 views
0

Also arbeite ich an einem Projekt für einen Client, der eine alte mysql-Datenbank für eine neue Site verwenden möchte.Verknüpfen Sie ein Rails-Modell mit einer MySQL-Datenbanktabelle mit einem anderen Namen

Ich kann die Namen der Tabellen in der Datenbank nicht ändern, da eine andere Anwendung dieselbe Datenbank verwendet. Ich verwende Rails, um die neue Site zu codieren.

Der aktuelle Name der Tabellen in der Datenbank stimmt nicht mit den Benennungskonventionen von Rails überein. Gibt es eine Möglichkeit, ein Modell "user.rb" mit dem Tabellennamen "tbl_user" zu verknüpfen?

(Ich habe auch versucht, eine .rb-Datei mit dem Namen "tbl_user" zu erstellen, aber der Tabellenname müsste "tbl_users" lauten).

Danke für jede Hilfe, die Sie geben können!

Antwort

0

Sie können dies wie folgt:

in Ihrer Modelldatei user.rb, setzen Sie diese Zeile:

class User < ActiveRecord::Base 
    self.table_name 'tbl_user' 
end 

Und Ihr Modell User auf den Tisch abbildet tbl_user

+0

Danke für die Antwort! Nachdem ich meine user.rb-Datei geändert habe, wie Sie gesagt haben, ging ich zum consle und versuchte User.new und bekam den folgenden Fehler (irgendwelche Ideen warum?): User.new ArgumentError: falsche Anzahl von Argumenten (gegeben 1, erwartet 0) von /usr/local/rvm/gems/ruby-2.3.0/gems/activerecord-5.0.0/lib/active_record/model_schema.rb:134:in 'table_name ' von/home/ubuntu/workspace/sample -app/app/models/user.rb: 2: in ' ' von /home/ubuntu/workspace/sample-app/app/models/user.rb:1:in' ' – sb4f1

+0

ah, ha, ich habe die Dokumentation überprüft und der Code sollte self.table_name = 'tbl_user' lauten. Danke, dass Sie mich auf den richtigen Weg gebracht haben! – sb4f1

+0

@ sb4f1 Wenn meine Antwort Ihnen hilft, können Sie meine Antwort als nützliche Antwort markieren. –

Verwandte Themen