While implementing a DBMS similar to Chadwick database, I'm encountering lots of similar codes like below (Please refer to the upper link if you think the database design itself is wrong.)
Setting values
self.away_lineup1_batter = player if player.id === away_lineup1_batter_id
self.away_lineup2_batter = player if player.id === away_lineup2_batter_id
self.away_lineup3_batter = player if player.id === away_lineup3_batter_id
self.away_lineup4_batter = player if player.id === away_lineup4_batter_id
self.away_lineup5_batter = player if player.id === away_lineup5_batter_id
self.away_lineup6_batter = player if player.id === away_lineup6_batter_id
self.away_lineup7_batter = player if player.id === away_lineup7_batter_id
self.away_lineup8_batter = player if player.id === away_lineup8_batter_id
self.away_lineup9_batter = player if player.id === away_lineup9_batter_id
or
Getting values
# Using jbuilder gem.
json.pos2_fielder do
json.partial! 'players/simple_hash', locals: {data: data.pos2_fielder}
end unless data.pos2_fielder.nil?
json.pos3_fielder do
json.partial! 'players/simple_hash', locals: {data: data.pos3_fielder}
end unless data.pos3_fielder.nil?
json.pos4_fielder do
json.partial! 'players/simple_hash', locals: {data: data.pos4_fielder}
end unless data.pos4_fielder.nil?
json.pos5_fielder do
json.partial! 'players/simple_hash', locals: {data: data.pos5_fielder}
end unless data.pos5_fielder.nil?
json.pos6_fielder do
json.partial! 'players/simple_hash', locals: {data: data.pos6_fielder}
end unless data.pos6_fielder.nil?
json.pos7_fielder do
json.partial! 'players/simple_hash', locals: {data: data.pos7_fielder}
end unless data.pos7_fielder.nil?
json.pos8_fielder do
json.partial! 'players/simple_hash', locals: {data: data.pos8_fielder}
end unless data.pos8_fielder.nil?
json.pos9_fielder do
json.partial! 'players/simple_hash', locals: {data: data.pos9_fielder}
end unless data.pos9_fielder.nil?
Copying and pasting 9 rows of codes aren't really a big deal but I think there could be a better solution for this. Any suggestion?