どのように実装すればよいでしょうか
言語はjavascript(es6可能)です。
目的は、modelの情報と表示したいcolumn指定から、modelの関連情報(has_manyなものやbelongs_toなもの含め)いい感じにtableタグを出力するためのviewModelを得ることです。

// can use es6
function makeTbodyModel(columns, model) {
  // pls implement
}

columns = [ 'name', 'age', { 'friends': [ 'name' ] }, 'gender' ];
model = {
  name: taro,
  age: 8,
  friends: [
    {
      name: jiro,
      age: 7,
      friends: [/*anydata*/],
      gender: male
    },
    {
      name: hanako,
      age: 12,
      friends: [/*anydata*/],
      gender: female
    }
  ],
  gender: male
};

makeTbodyModel(columns, model); /* => 下記の返り値が得られることを期待しています
[
  [
    { value: taro, rowSpan=2 },
    { value: 8,    rowSpan=2 },
    { value: jiro, rowSpan=1 },
    { value: male, rowSpan=2 },
  ],
  [
    { value: hanako rowSpan=1 },
  ]
] */