12

管理パネルにアクティブ管理を使用しています。ユーザー表示ページで、彼の友達を表示する必要があります。User と Friend の 2 つのモデルがあります。

「パネルとの友情」つまりuser.friendsブロックにページネーションを追加したい。

1 つのパネルにページネーションを追加するにはどうすればよいですか? これが私が使用しているコードです。

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

Friend モデルは実際には Facebook の友人であるため、User モデルで自己参照結合を使用することはできません (したがって、2 つではなく 1 つのモデルを使用するとは言いません)。同じページに他のパネルがいくつかあります。互いに競合しないように、すべてのパネルに独自のページネーション パラメータ名があることを確認する必要があります。

4

1 に答える 1

26

少し前に、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
于 2012-12-27T14:32:28.090 に答える