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]
-~----------~----~----~----~------~----~------~--~---

Répondre à