Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 
Autor Nachricht
BeitragVerfasst: 30 Mär 2012, 22:46 
Offline
Nuby

Registriert: 30 Mär 2012, 22:33
Beiträge: 3
Hi
Nach einigen Versuchen mit RoR und Diversen Tutorials stehe ich gerade vor einem Problem und komme nicht weiter....
Ich hab mein App mit Devise/CanCan zusammengebastelt und bislang lief alles gut, jetzt wollte ich die users Tabelle ein wenig ausbauen unter anderem um ein Feld für den Geburtstag. Das Ganze könnt Ihr euch in meinem Github anschauen.
http://localhost:3000/users/1/edit zeigt z.b ein Datumsfeld an wird aber nicht in die DB gespeichert und das ganze auch noch ohne Fehlermeldung. mit einer Direkteingabe in die Datenbank wird dann das datum auch richtig im Formular angezeigt, kann aber nicht aktualisiert werden, wieder ohne Fehlermeldung.

ich stehe für alle fragen zur verfügung


Zuletzt geändert von atcen am 31 Mär 2012, 00:26, insgesamt 1-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Datum wird nicht gespeichert
BeitragVerfasst: 30 Mär 2012, 23:11 
Offline
Meister

Registriert: 10 Dez 2009, 14:39
Beiträge: 212
Wieso sind die ganzen Instanzvariablengetter im Controller auskommentiert?

Unabhängig davon: Die Frage nach dem Datentyp ist essentiell. Deine Migration erstellt eine Spalte "bday" vom Typ "varchar". Im View benutzt Du das hier:


<%= f.input :bday,
:label => "Geburstag",
:as => :date,
:start_year => Date.today.year - 100,
:end_year => Date.today.year - 16,
:order => [:day, :month, :year] %>


Wo ist das her? Gehört das zu simple_forms? Ich kenne simple_forms nicht, aber wenn der auf den date_select Helper zurückgreift (3x Select Feld fürs Datum), dann kommt im Controller beim Update ein 3i-Datum an, das erst wieder zu einem Varchar/string "assembliert" werden müsste. Rails fühlt sich also nicht zuständig für die POST-Daten mit dem Datum. Rails würde nur reagieren, wenn das Feld bday von Typ "date" wäre und ein 3i Datum für "bday" ankommen würde.

Änder die Migration und lasse ein Feld "date" erstellen und versuche es dann noch einmal.

_________________
Sorry, wenn ich doofe Fragen stelle, stehe noch ganz am Anfang :oops:


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Datum wird nicht gespeichert
BeitragVerfasst: 30 Mär 2012, 23:36 
Offline
Nuby

Registriert: 30 Mär 2012, 22:33
Beiträge: 3
ah ja sry ich hab durch das ganze geteste noch die migrations datei in dem zustand hinterlassen... und von hand den yp in der datenbank geändert. hab es grad noch mal neu generiert.
zum code erstmal ja das ist simpleform das sucht sich den typ selbst aus der datenbank und generiert dann das jeweilige eingabefeld in dem fall werden drei dropdowns für day, month und year erzeugt.

das auskommentieren kommt durch load_and_authorize_resource was mit CanCan mitgeliefert wird, das soll die selbe funktionalität bringen... siehe railscast.com CanCan


ich hab grad nochmal alles durch geschickt hier eine debug ausgabe (ja mit einem datefeld in der db :))
utf8: ✓
user:
email: info@atcen.ne
bday(3i): '30'
bday(2i): '3'
bday(1i): '1912'
commit: Update User
action: show
controller: users
id: '1'


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Datum wird nicht gespeichert
BeitragVerfasst: 31 Mär 2012, 00:25 
Offline
Nuby

Registriert: 30 Mär 2012, 22:33
Beiträge: 3
Problem gelöst :D

völlig übermüdet und mit viel Google kam ich mal auf die Idee in meinem Model folgendes zu ändern:
attr_accessible :email, :password, :password_confirmation, :remember_me
in
attr_accessible :email, :password, :password_confirmation, :remember_me, :bday

und siehe da es geht :) und ich geh jetzt auch ins Bett


Nach oben
 Profil  
 
BeitragVerfasst: 31 Mär 2012, 10:15 
Offline
Meister

Registriert: 10 Dez 2009, 14:39
Beiträge: 212
Also wenn es eine attr_accessible whitelist gibt und Rails bekommt einen Parameter hingeworfen, der der nicht draufsteht, gibt es eine fette Exception im Development Mode ;)

_________________
Sorry, wenn ich doofe Fragen stelle, stehe noch ganz am Anfang :oops:


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 5 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
cron