Пагинация для панели в активном админе
Я использую активный админ для админки. На странице показа пользователя мне нужно показать его друзьям. У меня есть две модели: Пользователь и Друг.
Итак, вопрос в том, что я хочу добавить нумерацию страниц в блоке "дружба с панелью", то есть в блоке 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