Salut,
n'hésite pas à tester dans un script/console avant d'écrire ta vue.
Ton projet.especes retourne... un tableau. Donc tu peux tester la
présence d'éléments dans ce tableau, et itérer dessus de la même
manière que tu itères sur un résultat d'un .all dans une vue index.
En gros :
if projet.especes.present?
  projet.especes.each do |espece|
    espace.nom
(...)

On 26 nov, 11:29, pestak <[email protected]> wrote:
> Bonjour,
>
> J'ai trois tables :
> projets[id, nom, description]
> especes[id, nom]
> especes_projets[espece_id, projet_id]
>
> Dans les views, j'ai spécifié la relation N-N :
> Code :
>
> class Projet < ActiveRecord::Base
> has_and_belongs_to_many :especes
>
> # validation
> validates_presence_of :nom
> end
>
> Code :
>
> class Espece < ActiveRecord::Base
> has_and_belongs_to_many :projets
>
> # validation
> validates_presence_of :nom
> end
>
> Toutes les insertions, modifications se passent à merveille. C'est
> dans la page show.html.erb que ça se gâte. La page show permet juste
> l'affichage de l'occurence.
> Comment fait-on pour afficher la liste des espèces du projet?
>
> Voici l'extrait du code de la page show :
> Code :
>
> <div id="titre_page">Récapitulatif du projet</div>
> <br />
> <p style="color: green"><%= flash[:notice] %></p>
> <br />
> <table class="admin">
>   <tr>
>     <td width="150px" class="admin">Nom</td>
>     <td width="550px"><%=h @projet.nom %></td>
>   </tr>
>   <tr>
>     <td class="admin">Description</td>
>     <td><%=h @projet.description %></td>
>   </tr>
>   <tr>
>     <td class="admin">Espèces</td>
>     <td><%=h @projet.especes %></td>
>   </tr>
>   <tr>
>     <td class="admin">Actif</td>
>     <td>
>       <% if �[email protected] %>
>         Oui
>       <% else %>
>         Non
>       <% end %>
>     </td>
>   </tr>
>   <tr>
>     <td colspan="2" align="center"><%= link_to 'Modifier',
> edit_projet_path(@projet) %>&nbsp;&nbsp;&nbsp;<%= link_to 'Retour',
> projets_path %></td>
>   </tr>
> </table>
>
> Et voici le résultat :
> Espèces #Espece:0x4820010
>
> Merci d'avance
--~--~---------~--~----~------------~-------~--~----~
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 à