Forum: Rails France Formulaire et enregistrement des données au format YAML

60b8d3f023999069046e5bb5c2fbd58a?d=identicon&s=25 Céd B. (akyrho)
on 2010-03-17 14:11
(Received via mailing list)
Bonjour à tous,

Pour l'application que je développe, je tente d'utiliser un fichier YAML
pour stocker les variables de configuration. De l'autre coté, j'ai un
formulaire qui permet d'éditer ce fichier pour plus de
facilité.
Mon problème se situe au niveau de certaines valeurs. Les entiers sont
stocké comme des chaînes de caractères, idem pour les valeurs
booléennes.

Exemples :

Si je remplis les text_fields de mon formulaire comme suit :

settings[number] = 5
settings[string] = Chaine de caractère
settings[yesterday] = (Date.today-1)
settings[boolean] = true

Dans mon controlleur, je récupère ces valeurs et j'enregistre mon
fichier :

File.open("#{Rails.root}/config/settings.yml", 'w' ) do |out|
  out.write(params[:settings].to_yaml)
end

Résultat :

number: "5"
string: Chaine de caractère
yesterday: (Date.today-1)
boolean: "true"

Le problème est que les booléens et les entiers sont stockés comme étant
des chaînes de caractères, ce qui me pose quelques problèmes évidents
quand je veux utiliser ces valeurs ailleurs.

Quelqu'un pourrait-il m'aider à y voir plus clair?

Merci d'avance.

Cédric Bousmanne
Freelance Ruby on Rails Webdeveloper
http://cedricbousmanne.com
0498/685687 - 063/581005
2fd0206c71a1b22a9cc6293f38537461?d=identicon&s=25 Cyril Mougel (shingara)
on 2010-03-17 14:29
(Received via mailing list)
Le 17/03/10 14:10, Bousmanne Cédric a écrit :
>
> File.open("#{Rails.root}/config/settings.yml", 'w' ) do |out|
> Le problème est que les booléens et les entiers sont stockés comme étant
> des chaînes de caractères, ce qui me pose quelques problèmes évidents
> quand je veux utiliser ces valeurs ailleurs.
>
> Quelqu'un pourrait-il m'aider à y voir plus clair?
>

Tout élément transmis par params sont des String ce qui semble logique
vu qu'il n'y a pas de Typage des paramètre dans la norme HTTP.

Ce qu'il faut faire c'est transformer les données que tu veux dans le
type que tu souhaites (#to_i, etc..)


--
Cyril Mougel
http://blog.shingara.fr
This topic is locked and can not be replied to.