2012-12-24 5 views
7

Ich benutze Active Admin für Admin-Panel. Auf der Benutzershow-Seite muss ich seine Freunde zeigen. Ich habe zwei Modelle Benutzer und Freund.Paginierung für Panel in aktiven Admin

Also die Frage ist, ich möchte hinzufügen Paginierung in der "Freundschaft mit Panel" dh user.friends Block.

Kann mir jemand helfen, Paginierung auf einer Seite hinzuzufügen? Hier ist der Code, den ich verwende.

show do 
    attributes_table do 
    row("Photo") { |user| image_tag(user.facebook_photo_url) } 
    rows :name, :sex,:city 
    end 

    panel 'Friendship with' do 
    table_for user.friends do 
     column "" do |friend| 
     (link_to image_tag(friend.facebook_photo_url('small')), admin_friend_path(friend)) + "       ".html_safe + (link_to friend.name, admin_user_path(friend)) 
     end 

    end 
    end 

    active_admin_comments 
end 

PS: Freund-Modell ist eigentlich Freunde facebook, damit ich nicht selbst refrential schließt sich auf User-Modell verwenden kann (so nicht statt zwei Verwendung ein Modell sagen) und ich habe einige andere Platten auf der gleichen Seite. Ich muss sicherstellen, dass jedes Panel seinen eigenen Namen für die Seitennummerierung hat, damit sie nicht miteinander in Konflikt geraten.

Antwort

15

Vor einiger Zeit schrieb ich etwas so, um mehrere Tabellen auf einer Seite mit Paginierung zu versehen. Sie können mehrere Tabellen haben, indem Sie paginated_collection-Parameter ändern.

Ich hoffe, dieser Code kann helfen.

users = User.by_customer(customer.customer_id) #by_customer is scope 
panel 'Users' do 
    paginated_collection(users.page(params[:users_page]).per(15), param_name: 'users_page') do 
    table_for(collection) do |cr| 
     column(I18n.t("cr.start")) { |cr| I18n.l cr.start, format: :raw } 
     #other columns... 
    end 
    end 
end 
+1

nicht für mich arbeiten, sagt nicht definierte Methode .per für Active Beziehung Objekt – jbmyid

+0

@jbmyid - es ist wahrscheinlich, weil Sie will_paginate in Ihrem Projekt sind? Wenn ja, schau dir diesen Kommentar an: https://github.com/activeadmin/activeadmin/issues/1116#issuecomment-64888450 – asgeo1

+0

das ist so eine schöne Lösung. super klasse! –