2016-10-24 1 views
0

Je suis en train de parcourir 3 relations has_many dans ActiveAdmin pour afficher les informations. Je veux afficher les informations dans un parent, format enfant. Actuellement, j'ai un événement, au sein de l'événement, il existe de nombreux endroits, chaque lieu a de nombreuses dates, chaque date a de nombreux ambassadeurs (utilisateurs).La traversée de plus d'une relation has_many et l'affichage du contenu appartient à chacun. Active Admin

Je voudrais que les informations soient affichées afin que je vois les emplacements de l'événement, puis les dates séparées par les emplacements, puis les ambassadeurs (utilisateurs) séparés par les dates. Ceci est le code que j'ai actuellement écrit mais il ne me donne pas l'affichage parent enfant que je cherche.

show do 

attributes_table do 
row :agency 
row :name 
row :event_details 
row :created_at 

panel "Locations" do 
    attributes_table_for event.event_locations do 
    row :label 
    row :address 
    row :zip 
    row :state 
    row :country 
    row :notes 
    panel "Event dates" do 
     event.event_locations.each do |r| 
     attributes_table_for r.event_dates do 
     row :event_date 
     panel "Ambassadors" do 
      attributes_table_for event.booking.booking_staff do 

       row :ambassador 

     end 
     end 

    end 
    end 
end 
    end 
end 
    end 
active_admin_comments end 

Comme vous pouvez le voir avec le code ci-dessus, je ne vais pas obtenir les résultats souhaités. Toutes les suggestions seraient grandement appréciées. Merci.

Répondre

0

peut-être que cela vous dirigera dans la bonne direction. Assurez-vous de changer le

:attribute_of_event_date 

et les symboles similaires afin qu'ils aient un sens dans le contexte de vos données (modèle). Bonne chance!

panel "Locations" do 
    resource.event_locations.each do |event_location| 

    attributes_table_for event_location do 
     row :label 
     row :address 
     row :zip 
     row :state 
     row :country 
     row :notes 

     panel "Event dates" do 
     event_location.event_dates.each do |event_date| 

      attributes_table_for event_date do 
      row :attribute_of_event_date 
      row :another_attribute_of_event_date 
      panel "Ambassadors" do 
       event_date.ambassadors.each do |ambassador| 

       attributes_table_for ambassador do 
        row :atttribute_of_ambassador 
        row :another_atttribute_of_ambassador 
       end 
       end 

      end 
      end 

     end 
     end 
    end 
    end 
end