railsでapiを作っているのですが自分がやりたいような設計にできないので質問させていただきます。Itemモデルのliking_users(Itemをお気に入りしているユーザー)を含めた状態でTagモデルの中のItemモデルを複数取得したいです。最終的には下記のように取得したいです。

{ tags: [
    {  "id": 1,
       "name": Mens,
       "items": [
          {
             "id": 1,
             "name": shirts,
             "liking_users": [
                    {
                       "id": 1,
                       "name": Tom
                     },
                     { 
                       "id": 2,
                       "name": Steve
                     }
              ]
           }
        ]
     }
   ]
}

現状のコードは、

models/tag.rb

class Tag < ActiveRecord::Base
  has_many :items  
end

models/item.rb

class Item < ActiveRecord::Base
   has_many :likes, dependent: :destroy
   has_many :liking_users, through: :likes, source: :user
end

models/user.rb

class User < ActiveRecord::Base
   has_many :likes, dependent: :destroy
   has_many :like_items, through: :likes, source: :item
end

models/like.rb

class Like < ActiveRecord::Base
   belongs_to :item
   belongs_to :user
end

app/apis/api/v1/tags.rb

module API
  module V1
    class Tags < Grape::API
      resource :tags do

       desc 'GET /api/v1/tags/:id'
       params do
         requires :id, type: Integer, desc: "Tag id."
       end
       get '/:id' do
         tag = Tag.find(params[:id])
         @tag = tag.items.  #この行をどう書けばいいかわからないです、、
       end
      end
    end
  end
end

もしよければ、どなたか回答して頂けないでしょうか。宜しくお願いします。