2013-08-29 18 views
0

Mes rails champ Date picker envoie info date heure divisée en différentes valeurs dans le hachage params comme:Coalesce dateheure dans une chaîne dans params hash?

Parameters: {"commit"=>"Save", 
"interview_date(3i)"=>"29", 
"interview_date(1i)"=>"2013", 
"interview_date(4i)"=>"20", 
"interview_date(5i)"=>"13", 
"interview_date(2i)"=>"8} 

Comment puis-je faire envoyer le temps de date une chaîne appropriée?

Parameters: {"commit"=>"Save", 
    "interview_date"=>"2013-8-29 20:8:13"} 

Je sais que Rails va convertir ceci en date, mais cela n'arrive que lorsque mon modèle a interview_date comme attribut. ActiveRecord le reconnaît et le convertit en interview_date. Dans mon cas, je stocke cette information dans un modèle nommé Response dans un attribut nommé 'answer'. Donc, les rails ne le convertissent pas car il ne correspond pas au nom de l'attribut.

+0

Si cela est un objet ActiveRecord vous n'avez pas à vous soucier de cela, Rails le fera pour vous dans les coulisses. Y a-t-il une sorte d'erreur que vous recevez? –

Répondre

0

Vous pouvez modifier les données envoyées avant l'appel ajax comme si

(...).on("ajax:beforeSend", function(event, xhr, settings) { 
    settings.data += "&interview_date="+formatted_date_string; 
}); 

et formater cette chaîne de date à l'aide de chacune de ces valeurs par le haut.

Mise à jour: Mais il semble que Rails peut convertir cette information pour vous - Where is the Rails method that converts data from `datetime_select` into a DateTime object?

Questions connexes