Formulaire et enregistrement des données au format YAML

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

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 M.