Techioz Blog

Rails Admin エクスポート機能を拡張してテーブル結合をサポートするにはどうすればよいですか?

概要

以下のようなモデルチームと名簿があります。

チーム 属性: ID、名前、アドレス

名簿 属性: ID、名前、番号

チームをエクスポートすると、次のようにレコードが表示されます。

ID、名前、住所 1、abc1、test1 アドレス1 2、abc2、test2 アドレス2

ただし、テーブルの名簿にも参加したいので、理想的な結果は次のようになります。

ID、名前、住所、名簿名 1、abc1、テスト1アドレス1、A1 2、abc2、テスト2アドレス2、A2

Rails管理でテーブルを結合する方法はありますか?

私はメソッドを使用しています

    export do
      configure :rosters_data do
      end
      fields :id, :name, :address, :rosters_data
    end

チームモデルで rosters_data メソッドを定義しました

のように

    def rosters_data()
      self.rosters.all.pluck(:name)
    end
    

現在のモデル構造

class Team < ApplicationRecord
  has_many :rosters
end
class Roster < ApplicationRecord
  belongs_to :team
end

but its giving all rosters name in single row

解決策

TLDR - データを結合するには、テーブル オブジェクト間に適切な関係を作成する必要があります。すべての結合はオブジェクト間の関係に基づいており、そのために必要なのは、そのような関係をサポートするようにアーキテクチャを改善することだけです。