2010-10-12 6 views
0

Ok donc je suis en train de créer une table de hachage et je dois ajouter l'identifiant au hash..here est mon codeajoutant l'ID du hachage

h = Hash.new {|h1, k1| h1[k1] = Hash.new{|h2, k2| h2[k2] = []}} 
@result, today = [ h, h.dup], Date.today 

Request.find_all_by_artist("Metallica", :select => "DISTINCT venue, showdate, LOWER(song) AS song, id").each do |req| 
# need to insert the req.id in the hash somewhere 
    idx = req.showdate < today ? 0 : 1 
    @result[idx][req.venue][req.showdate] << req.song.titlecase 
end 

des suggestions sur la façon de le faire

voici ma boucle dans la vue

<% @result.each do |venue, date| %> 

<li> 
    <a href="#"><%= venue %></a> 
      <% date.each do |key, song| %> 
      <%= key %> 
      <ul class="acitem"> 
       <% puts key.inspect %> 
       <% puts song.inspect %> 

        <% songs.each do |each_song, count| %> 
        <li><%= each_song %> <%= each_song %></li> 
       <% end %><% end %> 
    </ul> 
</li> 
<% end %> 

je dois avoir l'identifiant de chaque demande et .... des idées

Répondre

2

Si vous appuyez Dans l'ensemble du dossier et pas seulement le titre, vous aurez accès à cette information lors de l'itération sur la liste des chansons.

@result[idx][req.venue][req.showdate] << req 

Vous pouvez alors l'utiliser comme vous le feriez normalement à votre avis:

<% songs_requests.each do |song_request, count| %> 
    <li id="song_<%= song_request.id %>"><%= song_request.song.titlecase %></li> 
<% end %> 

La vue que vous avez collé et la structure définie dans le contrôleur ne semblent pas correspondre complètement si je J'ai essayé de peindre l'image générale ici.