diff --git a/app/controllers/tables_arrangements_controller.rb b/app/controllers/tables_arrangements_controller.rb index 75451ca..c10e912 100644 --- a/app/controllers/tables_arrangements_controller.rb +++ b/app/controllers/tables_arrangements_controller.rb @@ -2,10 +2,13 @@ class TablesArrangementsController < ApplicationController def index - render json: TablesArrangement.all.order(discomfort: :asc).limit(10) + render json: TablesArrangement.all.order(discomfort: :asc).limit(10).as_json(only: %i[id discomfort]) end def show - render json: TablesArrangement.find(params[:id]) + Seat.joins(:guest).where(tables_arrangement_id: params[:id]) + .pluck(:table_number, Arel.sql("guests.first_name || ' ' ||guests.last_name ")) + .group_by(&:first).transform_values { |table| table.map(&:last) } + .then { |result| render json: result } end end diff --git a/app/models/tables_arrangement.rb b/app/models/tables_arrangement.rb index c3c0797..0ceb0cd 100644 --- a/app/models/tables_arrangement.rb +++ b/app/models/tables_arrangement.rb @@ -2,4 +2,5 @@ class TablesArrangement < ApplicationRecord has_many :seats + has_many :guests, through: :seats end