Des floats pour stocker des heures... beurk. Mais bon, si tu y tiens, un petit truc que tu peux mettre dans ton modèle :
def mon_champs_in_hours ... # mon_champs => float => string end def mon_champs_in_hours= value ... # string => float => mon_champs end Et du coup, dans ta vue : <%= f.text_field :mon_champs_in_hours %> Ceci dit, pourquoi ne pas stocker cette valeur tout simplement en texte ? Michel Belleville 2009/7/7 Guillaume Morain <[email protected]> > > Bonjour, > > J'ai un problème assez récurrent en rails dont je n'arrive pas à trouver > une solution optimale. > > En fait, ma problématique est d'afficher des données dans un format > "maison". > > Exemple: > > En base, je vais avoir un float qui correspond à des heures. > > 1.5 => 1:30 > > J'ai fait un helper qui à cette tête là: > > class ActionView::Helpers::FormBuilder > > def hours_text_field(method, options={}) > if options[:value].is_a?(Float) > options[:value] = options[:value].to_h > end > text_field method, options > end > > end > > le to_h me convertit le float en heures. > > Dans ma vue, j'ai donc ceci : > > <%= f.hours_text_field :mon_champ, :value => @monmodele.monchamp %> > > Et j'ai divers problèmes: > > Le premier d'entre eux se situe dans le retour sur erreur: en effet, la > valeur va être à nouveau convertit en "heures" alors que je voudrais > laisser la valeur initialement entrée. > > Deuxieme probleme, au moment de la mise en base, le modele typecast le > champ en float sans que je puisse rien y faire. Je ne peux pas dériver > le string_to_float de ActiveRecord::ConnectionAdapters::Column vu que > dans mon application, j'ai deux interprétations pour le même type de > champ en base. > > En général, le problème d'interprétation des champs dans une vue me pose > problème dès que je sors de la représentation "classique" de ce type de > champ. > > Des idées ? > -- > Posted via http://www.ruby-forum.com/. > > > > --~--~---------~--~----~------------~-------~--~----~ Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de Google Groups. Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse [email protected] Pour résilier votre abonnement envoyez un e-mail à l'adresse [email protected] -~----------~----~----~----~------~----~------~--~---
