データベース構造に基づいてjson配列(実際には文字列)を作成しようとしています。私は次の関係を持っています:
Country > State > City
私が今やっている方法は非常に非効率的です(N + 1):
data = "[" + Country.all.map{ |country|
{
name: country.name,
states: country.states_data
}.to_json
}.join(",") + "]"
次に、Country モデルでは次のようにします。
def states_data
ret_states = []
states.all.each do |state|
ret_states.push name: state.name, cities: state.cities_data
end
ret_states
end
次に、状態モデルで:
def cities_data
ret_cities = []
cities.all.each do |city|
ret_cities.push name: city.name, population: city.population
end
ret_cities
end
どうすればこれをより効率的に行うことができますか?