2010-12-22 9 views
0
@items.each_with_index do |item, i| 

    @mylist << { 
    :id => item.id, 
    :name => name.id, 
    :users => { 
     item.participations.each do |participant| 
     :participant_image_link => participant.imagelink 
     end 
    } 


    } 

end 

render :json => { :result => 'success', :mylist => @mylist } 

Ich brauche die Fähigkeit für ein Array für: Benutzer, aber kann nicht herausfinden, wie man es baut, ohne Rails zu brechen.Rails - Ist eine EACH-Schleife irgendwie in einem Hash machbar?

Dank

+0

Was das Ergebnis dieser sein sollte? Du würdest den ': participant_image_link'-Schlüssel jedesmal überschreiben, wenn du die Schleife durchsuchst, selbst wenn so etwas funktioniert. Vielleicht möchten Sie stattdessen eine Reihe von Hashes? – Chuck

+0

@Chuck, ich möchte: Teilnehmer => item.item_participations aber das bricht. Also habe ich darüber nachgedacht, es manuell zu erstellen. Damit bekomme ich die Fehlermeldung: {"conversationlist": [{"id": 187, "name": "QA - 4 Teammitglieder", "Teilnehmer": [{"item_participation": {"created_at": "2010-12- 21T09: 31: 30-08: 00 "," updated_at ":" 2010-12-21T09: 31: 30-08: 00 "," participant_id ": 187}, {ein anderer Teilnehmer .....}}], nächster Artikel – AnApprentice

+0

Einige, wie es den Rest des Hashes bricht und im Browser bekomme ich zurück:, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} , {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} }, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}}} nach der ersten Aufzeichnung, anstatt durch alle zu blättern Artikeldatensätze und einschließlich eines Arrays ihrer Teilnehmer – AnApprentice

Antwort

2
:users => item.participants.map { |participant| 
    { :participant_image_link => participant.imagelink } 
} 
+0

danke für die Antwort. Ich dränge meinen Kopf gegen die Wand. – AnApprentice

+0

Das ist erstaunlich !!! Sie sind mein Held. Gibt es eine Möglichkeit, einen Index hinzuzufügen, möchte ich sicherstellen, dass Teilnehmer ein MAX von 3 ist – AnApprentice

+1

Sie können alles in 'Enumerable' (http://rubydoc.info/stdlib/core/1.9.2/Enumerable) und Sie verwenden kann eigene Methoden implementieren. Sie können zum Beispiel 'item.participants.take (3) .map'. – yfeldblum