Hier ist meine schema.rbRails 4 Migration: mysql2 :: Fehler: Daten zu lang für Spalte 'xxxx'
create_table "users", force: true do |t|
t.string "name", limit: 6
t.string "email"
t.datetime "created_at"
t.datetime "updated_at"
end
ich die Grenze fo Zeichenfolge für die Spalte "Name" gesetzt.
Dann in der Konsole:
user = User.new(name:"1234567890",email:"[email protected]")
user.save!
Es erhöht den Fehler:
ActiveRecord::StatementInvalid: Mysql2::Error: Data too long for column 'name' at row 1: INSERT INTO `users` (`created_at`, `email`, `name`, `updated_at`) VALUES ('2014-06-19 15:08:15', '[email protected]', '1234567890', '2014-06-19 15:08:15')
Aber, wenn ich auf Schienen 3 geschaltet.
Ich fand es die Schnur abgeschnitten ohne Fehler "" automatisch und eingefügt "" in der Datenbank.
Wurde irgendetwas in rails 4 entfernt?
Sollte ich einige Funktionen im Modell selbst hinzufügen? Vielen Dank!
Für die letzte Frage kann es auf Ihren Anwendungsfall ab, für 'User' Schöpfung. Vielleicht ist es besser, einen Validator hinzuzufügen, um die Länge von ': name' zu prüfen und dem Benutzer einen Fehler anzuzeigen, wenn er zu lange endet? –
Validierung ist wahrscheinlich der Weg zu gehen, weil ein Benutzer wissen sollte, dass ihr Name nicht länger als 6 Zeichen sein kann. Andernfalls könnten sie überrascht sein, wenn sie "Jonathan" eingeben, aber wenn sie ihr Profil ansehen, wird ihr Name als "Jonath" aufgeführt. –
Danke, ich verstehe, der bessere Weg ist es, eine Validierung hinzuzufügen. Aber ich möchte nur herausfinden, was in Rails 4 geändert wurde, und ich habe einige Modelle, die für Benutzer unsichtbar sind. In diesem Fall kann mir die Validierung nicht helfen. – tzzzoz