ruby - How do I "group" sets in Rails' jbuilder? -
i've got set of "player" , "team" models in ror app (a json api) representing sports team, "roster" model acting middleman in many-to-many relationship. in "roster" view, i'm trying 'group' players team jbuilder, can't figure out proper code this.
my current jbuilder view code (index.json.jbuilder) looks this:
json.rosters @rosters |roster| json.team_id roster.team.team_id json.team_name roster.team.team_name json.player_id roster.player.player_id json.first_name roster.player.first_name json.last_name roster.player.last_name end
this outputs following json:
{ "rosters": [ { "team_id": "1", "team_name": "dallas mavericks", "player_id": "1", "first_name": "dirk", "last_name": "nowitzki" }, { "team_id": "1", "team_name": "dallas mavericks", "player_id": "2", "first_name": "rajon", "last_name": "rando" } ] }
my question: how can jbuilder output data in format instead? :
{ "rosters": [ { "team_id": "1", "team_name": "dallas mavericks", "players": [ { "player_id": "1", "first_name": "dirk", "last_name": "nowitzki" }, { "player_id": "2", "first_name": "rajon", "last_name": "rando" } ] } ] }
some side notes:
- for wondering why team-player relation many-to-many, it's because players allowed change teams. roster table has start- , end-date fields represent player's tenure on team, representing changing roster on time; isn't shown in above example lack-of-clutter's sake.
- i more in team view, don't want return roster information there since it's used listing teams. might end being lot of data unconditionally pull if include roster stuff each time.
- i'm using sequel orm, not activerecord, if solution involves twiddling source data before sending jbuilder, i'm not sure if ar magic apply. still rather new this.
Comments
Post a Comment