probléme avec find_by_sql

Bonsoir , mon probléme cette fois est le suivant :

-je veux récupérer le resultat d’une requete dans un variable par
exemple :

@var=Image.find_by_sql(“select filenam from images i , users u where
u.fonction =‘directeur employe’ and i.id = u.id_image”)

quand j’éxecute est je recupere le resultat de @var je voit qu’il ne
contient pas la valeur

qui est dans ma base de données il me donne un truc comme ca : #<Image:
0x9b7a91>

alors que moi je veut récuperer dans @var le resultat qui est
enrigestrer dans ma base

de données .

Merci pour votre génereusité!!

2008/6/10 R9999 [email protected]:

contient pas la valeur

J’imagine que tu as bien conçu ta structure de données et que tu
utilises pleinement ActiveRecord. Il est bien dommage de s’en priver
et de passer directement du SQL, mais dans certains cas (procédures
stockées par exemple) c’est toujours plus simple de s’en tirer avec
une bonne vieille requête SQL.

Tu peux utiliser Model.connection.select_value pour récupérer une
valeur. Tu as quelques fonctions utiles pour faire des requêtes
directement en SQL, regarde la doc dans les select_. Sinon tu peux
aussi, si la table associée à ton modèle Image possède une colonne
‘filenam’ récupérer cette valeur via @var.filenam


http://fabien.jakimowicz.com

nereusité!!

J’imagine que tu as bien conçu ta structure de données et que tu
utilises pleinement ActiveRecord. Il est bien dommage de s’en priver
et de passer directement du SQL, mais dans certains cas (procédures
stockées par exemple) c’est toujours plus simple de s’en tirer avec
une bonne vieille requête SQL.

Tu peux utiliser Model.connection.select_value pour récupérer une

un exemple svp

valeur. Tu as quelques fonctions utiles pour faire des requêtes
directement en SQL, regarde la doc dans les select_. Sinon tu peux
aussi, si la table associée à ton modèle Image possède une colonne
‘filenam’ récupérer cette valeur via @var.filenam

@var.filename me genere l’erreur suivant => undefined method
`filename’ for #String:0x8830ee

-je veux récupérer le resultat d’une requete dans un variable par
exemple :
@var=Image.find_by_sql(“select filenam from images i , users u where
u.fonction =‘directeur employe’ and i.id = u.id_image”)
quand j’éxecute est je recupere le resultat de @var je voit qu’il ne
contient pas la valeur
qui est dans ma base de données il me donne un truc comme ca : #<Image:
0x9b7a91>

Image.find_quelquechose va te renvoyer une instance de ton modèle
Image, c’est normal

alors que moi je veut récuperer dans @var le resultat qui est
enrigestrer dans ma base
de données .

@var.filenam ?

Merci pour votre génereusité!!

Deu riain :slight_smile:

PS:En utilisant correctement les fonctions find et les relations entre
tes modèles, tu ne devrais pas avoir besoin d’utiliser find_by_sql et
de taper toi-même ta requête, je te conseille de fouiller un peu dans
la documentation ou là, qui contient pas mal de trucs utiles (et aussi
quelques trucs dépassés):
http://rails.raaum.org/
Et notamment les liens du menu à droite: “ActiveRecord”, etc.

C’est en anglais mais je n’ai pas trouvé mieux.
Bon courage.


Baptiste

quand j’�xecute est je recupere le resultat de @var je voit qu’il ne
contient pas la valeur

qui est dans ma base de donn�es il me donne un truc comme ca : #<Image:
0x9b7a91>

@var.filename me genere l’erreur suivant => undefined method
`filename’ for #String:0x8830ee

@var est un objet “Image” ou un “String” au final?