0
Ich importierte Daten in Rails mit einer .SQL-Datei, um festzustellen, dass die meisten Spaltentitel einen Punkt "." in ihnen. Dies ist eindeutig ein Problem, und nach dem Versuch, eine Migration auszuführen, die die Spaltennamen ändert, wird der Zeitraum immer noch verworfen. Irgendwelche Workarounds zu sprechen?Ändern der Spaltentitel mit einem "." Zeitraum
class FixColumnNames < ActiveRecord::Migration
def change
change_table :my_table do |t|
t.rename :p1.address, :'p1_address'
end
end
end
Um zu verstehen, warum die oben nicht funktioniert, die Tatsache, dass der Ausdruck betrachten ': p1.to_s' gibt den String' "p1" 'zurück. Der Ausdruck ': p1.address' wird einen NoMethodError auslösen (was übrigens in Ihrer Frage enthalten sein sollte), weil': p1' ein Symbol ist und Symbole nicht auf eine Methode mit dem Namen 'address' antworten. Wie Simone unten zeigt, muss ein Symbol mit Sonderzeichen (oder Leerzeichen) in Anführungszeichen eingeschlossen sein, d. H. ':" P1.address "' oder ': 'p1.address''. –