Пагинация для панели в активном админе

Я использую активный админ для админки. На странице показа пользователя мне нужно показать его друзьям. У меня есть две модели: Пользователь и Друг.

Итак, вопрос в том, что я хочу добавить нумерацию страниц в блоке "дружба с панелью", то есть в блоке user.friends.

Может ли кто-нибудь помочь мне добавить нумерацию страниц на одной панели? вот код, который я использую.

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: Модель Friend - это друзья из Facebook, поэтому я не могу использовать самореференциальные объединения для модели User (поэтому не используйте одну модель вместо двух), и у меня есть другие панели на той же странице. Мне нужно убедиться, что у каждой панели есть собственное имя параметра пагинации, чтобы они не конфликтовали друг с другом.

1 ответ

Решение

Некоторое время назад я написал что-то вроде этого, чтобы добавить нумерацию страниц в несколько таблиц на одной странице. Вы можете иметь несколько таблиц, изменяя параметры paginated_collection.

Я надеюсь, что этот код может помочь.

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
Другие вопросы по тегам