Find() ne retourne pas la valeur d'un champ dynamique

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.

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. :slight_smile:

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.frailers.net

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.