Ruby Forum Rails France > find() ne retourne pas la valeur d'un champ dynamique

Posted by Chris Gers32 (gers32)
on 29.02.2008 12:01
Bonjour,

J'ai une table de base de données qui contient un grand nombre de
champs, parmi lesquels du contenu dans plusieurs langues : DESC_EN,
DESC_FR, DESC_DE, etc. Je souhaiterais sélectionner dynamiquement un
seul de ces champs, via le "AS" de SQL, pointant vers le même champ
dynamique : DESCRIPTION_I18N.

Mon code Rails ressemble à ceci :

### MODELE ###

  def description_i18n
# Le vrai champ est sélectionné dynamiquement :
    self[:desc_fr]
  end

### CONTROLEUR ###

@my_data = MyTable.find(
  :all,
  :select => "ID, CODE, DESC_FR AS DESCRIPTION_I18N",
  :conditions => conditions_list)
@my_data_i18n = @my_data.to_xml :methods => [:description_i18n]
render :xml => @my_data_i18n

##########################

Malheureusement, les données pour le champ DESCRIPTION_I18N ne sont pas
retournées par la fonction, sauf si je supprime l'option :select. Or,
j'en ai besoin pour restreindre la quantité de données qui peut être
énorme.

Quelqu'un a-t-il/elle une solution à me proposer ?

Merci,

Christophe.
Posted by Jean-Baptiste Escoyez (Guest)
on 29.02.2008 15:08
(Received via mailing list)
Bonjour à tous,
Pour ceux d'entre vous qui attendaient une documentation en français à 
propos de Rails 2.0 pour passer à la nouvelle version du framework, vous
trouverez la traduction française du mini-book peepcode à propos de
Rails 2 sur http://peepcode.com/products/rails-2-pdf-fr . Vous pouvez
vous le procurer pour la modique somme de 9$ (~6 €).

Tous les commentaires, suggestions et corrections sont les bienvenus. :)

Et pour l'actualité Ruby on Rails en français, tout au long de l'année,
n'oubliez pas www.frailers.net !

Bonne journée,

Jean-Baptiste

---
Web 2.0 & Ruby on Rails consultant
www.belighted.com
www.frailers.net
Posted by Chris Gers32 (gers32)
on 29.02.2008 16:10
Mon problème est résolu : il ne fallait pas créer la variable 
DESCRIPTION_I18N dans la requête SQL, puisqu'elle est créée dans le 
to_xml() qui s'attend par contre à trouver DESC_FR dans le résultat de 
la requête. J'ai donc supprimé "AS DESCRIPTION_I18N" et ça marche !

Merci Fred du forum "Ruby on Rails".

Christophe.