ich möchte folgendes Feature mit einem Datumswert
(Geburtsdatum/Projektstart, etc.) realisieren:
DB/Model: Datentyp date
View: Eingabefeld: Textfeld, kein Date-Helper oder ähnliches
Funktionalität (Model oder Controller), die
a) prüft, ob das Datum gültig ist
b) ergänzt: bei Eingabe von 08.01 wird 08.01.2008, etc.
c) in date wandelt
Leider bin ich mit meinen Versuchen gescheitert, da ich es nicht
geschafft habe, zwischen Model und View von date an string und umgekehrt
zu übergeben.
Leider bin ich mit meinen Versuchen gescheitert, da ich es nicht
geschafft habe, zwischen Model und View von date an string und
umgekehrt
zu übergeben.
Kann mir jemand einen Tipp geben ?
Mach doch einfach eine neue Methode in deinem Model, zB. date_str= der
dann der Wert aus dem View zugewiesen wird. Diese Methode kann dann den
String parsen und auf das date field in deinem Model setzen. Und wenn du
dann noch eine passende date_str dazu hast kann die das date dann auch
wieder als String formatiert zurueck liefern (zum anzeigen im View).
Leider bin ich mit meinen Versuchen gescheitert, da ich es nicht
geschafft habe, zwischen Model und View von date an string und
umgekehrt
zu übergeben.
Kann mir jemand einen Tipp geben ?
Mach doch einfach eine neue Methode in deinem Model, zB. date_str= der
dann der Wert aus dem View zugewiesen wird. Diese Methode kann dann den
String parsen und auf das date field in deinem Model setzen. Und wenn du
dann noch eine passende date_str dazu hast kann die das date dann auch
wieder als String formatiert zurueck liefern (zum anzeigen im View).
Wie bekomme ich den Wert eines Textfeldes der View zum Model bzw.
Controller. Die Variable @attributes des Models kennt ja nur die Felder
der Tabelle.
Wie bekomme ich den Wert eines Textfeldes der View zum Model bzw.
Controller. Die Variable @attributes des Models kennt ja nur die
Felder
der Tabelle.
Ganz einfach. Wenn die Methoden date_str und date_str= (aus meinem
obigen Beispiel) in deinem Model definiert sind ersetzt du einfach im
View alle Vorkommen des date Attributs mit diesem neuen “Attribut”.
Letztendlich gibt es in deiner Model Klasse ja auch nur Methoden fuer
all deine Felder in der Datenbank, die halt automatisch fuer dich von
Rails erzeugt werden. Hier machst du einfach dein eigenes.
Ganz einfach. Wenn die Methoden date_str und date_str= (aus meinem
obigen Beispiel) in deinem Model definiert sind ersetzt du einfach im
View alle Vorkommen des date Attributs mit diesem neuen “Attribut”.
Letztendlich gibt es in deiner Model Klasse ja auch nur Methoden fuer
all deine Felder in der Datenbank, die halt automatisch fuer dich von
Rails erzeugt werden. Hier machst du einfach dein eigenes.
Also das mit date_str (bzw wohl created_at in den meisten Fällen)
lass mal
lieber sein. Das gibt nämlich sehr schnell Ärger.
Es ist besser wenn man zum Beispiel
ActiveSupport::CoreExtensions::Time::Conversions.DATE_FORMATS
überschreibt und dann die to_date bzw to_formatted_s Methoden verwendet.
config/environment.rb ist der richtige Platz dafür und wahrscheinlich
wird das hier auch nützen:
Date::MONTHNAMES = [nil] + %w(Jänner Feber März April Mai Juni Juli
August September Oktober November Dezember)
Date::DAYNAMES = %w(Sonntag Montag Dienstag Mittwoch Donnerstag
Freitag Samstag)