Wie kann ich veranlassen, dass Rails ActiveRecord automatisch Werte abschneidet, die auf Attribute mit maximaler Länge eingestellt sind?

8

Angenommen, ich habe eine Klasse wie die folgende:

%Vor%

Gibt es eine Möglichkeit (zu installierendes Schmuckstück?), dass ActiveRecord Werte automatisch entsprechend der maximalen Länge abschneiden kann?

Zum Beispiel, wenn ich schreibe:

%Vor%

sollte speichern und zurückgeben?

Wenn es nicht so ist, wie würden Sie vorschlagen, dass ich mit einem solchen Problem allgemeiner konfrontiert werde?

    
p.matsinopoulos 30.06.2011, 18:44
quelle

3 Antworten

2

Ich habe einen neuen Validator gefunden, der abgeschnitten wird. Hier ist, wie ich das gemacht habe:

Ich habe den Ordner "validators" im Ordner "app" erstellt und dann die Datei "length_truncate_validator.rb" mit folgendem Inhalt erstellt:

%Vor%

Und in meiner Modellklasse habe ich etwas wie:

%Vor%

das ist ziemlich praktisch und funktioniert so, wie ich es brauche.

Aber trotzdem, wenn Sie denken, dass dieser verbessert oder auf andere Weise getan werden kann, sind Sie willkommen.

    
p.matsinopoulos 02.07.2011, 08:28
quelle
5

Nun, wenn Sie möchten, dass der Wert abgeschnitten wird, wenn er zu lang ist, brauchen Sie nicht wirklich eine Validierung, weil er immer besteht. Ich würde das so behandeln:

%Vor%     
karmajunkie 30.06.2011 19:06
quelle
0

Dies war vielleicht 2011 keine Option, aber jetzt gibt es einen before_validation Callback, der funktioniert.

%Vor%     
bradlis7 09.07.2017 04:38
quelle