@wines = Wine.find(:all)
<% @wines.group_by(&:region_id) do |region_id, region_wines| %>
<%= Region.find(region_id).name %>
<% region_wines.group_by(&:color) do |color, color_wines| %>
<%= color %>
<% color_wines.group_by(&:appellation_id) do |appellation_id,
appellation_wines| %>
<%= Appellation.find(appellation_id).label %>
<% appellation_wines.each do |appellation_wine| %>
<%= appellation_wine.name %>
<% end %>
<% end %>
<% end %>
<% end %>
2008/12/2 Julien Castelain <[EMAIL PROTECTED]>
> Désolé de persiter, mais voila, j'ai un peu progréssé
>
>
> Dans mon controlleur j'ai
>
> @region = Region.find(:first, :conditions => ['name = ?', 'bordeaux'])
> @wines = Wine.find(:all, :conditions => ['color = ? AND region_id = ?',
> 'rouge', @region.id], :order => 'name ASC')
>
>
> Dans ma vue j'ai
>
> <% @wines.group_by(&:appellation).each do |appellation, wines| %>
> <%= appellation.name %>
> <br />
> <% wines.each do |w| %>
> <%= w.name %><br />
> <% end %>
> <% end %>
>
> Exactement ce que je voulais, par contre, puis-je me servir du premier
> exemple donné pour ne pas préciser la région et la couleur comme je l'ai
> fait au dessus
>
> Merci
>
>
> 2008/12/2 Julien Castelain <[EMAIL PROTECTED]>
>
>> Bon je galère toujours autant,
>>
>> Voici ce que j'ai fait
>>
>> @region = Region.find(:first, :conditions => ['name = ?', 'bordeaux'])
>>
>> @wines = Wine.find(:all, :conditions => ['color = ? AND region_id = ?',
>> 'rouge', @region.id],
>> :order => 'name ASC')
>>
>> @wines = @wines.group_by(&:appellation_id).each do |appellation_id, w|
>>
>> end
>>
>> Mais ça ressemble à n'importequoi, comment pourrais-je faire pour sortir
>> une liste du style
>>
>> Region
>> Couleur
>> Appellation
>> Vin
>>
>> Biens sur toutes ces infos (Region, Couleur, Appellation et Vin) ne
>> doivent figurer qu'une fois dans cette liste
>> A les bonnes prises de tête quand on a un niveau de merde comme le mien ça
>> fatique :)
>>
>> Merci encore
>>
>>
>>
>> 2008/12/2 Julien Castelain <[EMAIL PROTECTED]>
>>
>>> Sinon, je me demandais si il n'y avait pas moyen de grouper tout cela
>>> avec GROUP BY
>>>
>>> 2008/12/2 Julien Castelain <[EMAIL PROTECTED]>
>>>
>>>> Merci à vous, un grand pas a été franchi,
>>>> maintenant je vais tenter de regrouper le tout par région, couleur et
>>>> appellation car pour l'instant quand j'essaie d'afficher tout cela j'ai
>>>> encore
>>>>
>>>> Bordeaux
>>>> Rouge
>>>> Haut Medoc
>>>> Haut Medoc Rouge 1
>>>> Bordeaux
>>>> Rouge
>>>> Haut Medoc
>>>> Haut Medoc Rouge 2
>>>> Bordeaux
>>>> Rouge
>>>> Haut Medoc
>>>> Haut Medoc Rouge 3
>>>>
>>>> et je voudrais
>>>>
>>>> Bordeaux
>>>> Rouge
>>>> Haut Medoc
>>>> Haut Medoc Rouge 1
>>>> Haut Medoc Rouge 2
>>>> Haut Medoc Rouge 3
>>>>
>>>>
>>>> C'est pas évident à comprendre les blocks en ruby, en tout cas c'est
>>>> très sympa de votre part
>>>> Qui sait, il y aura peut etre du boulot pour quelqu'un si je persiste à
>>>> echouer
>>>>
>>>> A +
>>>>
>>>>
>>>>
>>>>
>>>> On Tue, Dec 2, 2008 at 2:05 PM, Cyril Mougel <[EMAIL PROTECTED]>wrote:
>>>>
>>>>>
>>>>> Julien Castelain wrote:
>>>>> > Bonjour à tous,
>>>>> >
>>>>> > Je vais tenter de vous exposer mon problème en essayant d'etre clair,
>>>>> > en gros je n'arrive pas à "lier" certaines tables,
>>>>> >
>>>>> > J'ai une table "wines" qui ressemble à ceci :
>>>>> >
>>>>> > wines
>>>>> > -- id
>>>>> > -- name
>>>>> > -- color
>>>>> > -- region_id
>>>>> > -- appellation_id
>>>>> >
>>>>> > exemple (1, "Mon vin", "Rouge", 1, 1)
>>>>> >
>>>>> > J'ai egalement les tables regions et appellations qui ressemblent
>>>>> > elles à ceci :
>>>>> >
>>>>> > region
>>>>> > -- id
>>>>> > -- name
>>>>> >
>>>>> > exemple (1, "Bordeaux")
>>>>> >
>>>>> > appellation
>>>>> > -- id
>>>>> > -- bale
>>>>> >
>>>>> > exemple (1, "Chateau du slip")
>>>>> >
>>>>> > Voici ce que je souhaite faire (enfin mon client pas moi)
>>>>> >
>>>>> > Afficher
>>>>> >
>>>>> > - Region
>>>>> > -- Couleur
>>>>> > --- Appellation
>>>>> > ---- Nom du vin
>>>>> >
>>>>>
>>>>> Tu fais dans le même ordre :
>>>>>
>>>>> Region.all.each do |r|
>>>>> puts "- #{r.name}"
>>>>> r.wines.each do |w|
>>>>> puts "\t-- w.color"
>>>>> puts "\t\t --- w.appelation.name"
>>>>> puts "\t\t\t --- w.name"
>>>>> end
>>>>> end
>>>>>
>>>>> --
>>>>> Cyril Mougel
>>>>> http://blog.shingara.fr
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---