Question retour msql

Bonjour,
je me met à la prog qui n’est pas encore mon point fort et je dois créé
un
WS avec RoR, mais je bloque un peu.
J’ai lus pas mal de pages sur le net mais j’arrive pas à saisir la
commande
qu’il me faut.

j’ai deux tables :
extensions
-phone
-mel

melodie
-url

avec dans le modele extension
belongs_to :mel, :class_name => “Melodie”, :foreign_key => ‘mel’

Je cherche à récupérer les extensions qui utilise une mélodie.
Quand je fais

@extension_use = Extension.find_by_rgbt(id_melodie)
p @extension_use.phone

ça me retourne le premier trouvé, normal, mais comment faire pour qu’il
me
les retourne tous ?
Merci d’avance.
Aymeric

Aymeric :

melodie

ça me retourne le premier trouvé, normal, mais comment faire pour qu’il me
les retourne tous ?

Si tu as :

class Melodie < AR::B
has_many :extensions, :foreign_key => ‘mel’
end

tu peux faire :

melodie = Melodie.find(id_melodie)
extensions = melodie.extensions

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)

Si tu as :

class Melodie < AR::B
has_many :extensions, :foreign_key => ‘mel’
end

non je n’ai pas de has_many
la table melodie contien t un id et un url
la table extension contient un champ mel qui renvoit sur l’id d’une
melodie.

je cherche à connaitre toutes les extensions utilisant la melodie_id et
je
m’embrouille un peu avec les commandes find ou sql.

merci,
j’ai utilisé un find_by et mis un while derrière pour traiter tous les
cas.
C’est moche mais au moins cela fonctionne.

On 9/26/07, Aymeric C. [email protected] wrote:

la table extension contient un champ mel qui renvoit sur l’id d’une melodie.

je cherche à connaitre toutes les extensions utilisant la melodie_id et je
m’embrouille un peu avec les commandes find ou sql.

Justement si tu définis ce has_many, ca te permettra d’indiqué qu’une
mélodie a plusieurs extension. ca fera la liaison SQL équivalente qui
convient bien.

Que tu fasses un find ou un find_by_xx, ca revient au même. Ca ajoute
juste des contraintes sur ta recherche.

Regarde dans les traces les requêtes SQL effectué pour comprendre
peut-être un peu mieux le mécanisme.


Cyril M.

On 9/26/07, Aymeric C. [email protected] wrote:

merci,
j’ai utilisé un find_by et mis un while derrière pour traiter tous les cas.
C’est moche mais au moins cela fonctionne.

Si tu connais la requête SQL que tu veux réellement réaliser tu peux
toujours utiliser le pratique et indispensable find_by_sql

Cette dernière méthode est toujours pratique.


Cyril M.

Bonjour,

Je suis pas sûr de tout comprendre, mais :
Extension.find_all_by_rgbt(id_melodie)
Ne marcherais pas ?
Le 26 sept. 07 à 20:39, Aymeric C. a écrit :

c’est ce que j’avais fait mais j’arrivais pas à traiter le retour
#mysql