Relationships
Minimal example
@create_agent.customize_collection('town') do |collection|
collection
# Towns belong to 1 country
.add_many_to_one_relation('country', 'Country', { foreign_key: 'country_id' })
# Towns have 1 mayor
.add_one_to_one_relation('myMayor', 'Mayor', { origin_key: 'town_id' })
# Towns have multiple inhabitants
.add_one_to_many_relation('inhabitants', 'Person', { origin_key: 'town_id' })
# Towns electricity is supplied by power-plants which are shared with other towns
.add_many_to_many_relation('energyProviders', 'PowerPlant', 'UtilityContract', { origin_key: 'town_id', foreign_key: 'power_plant_id' })
# Towns have a list of honorary citizen that is retrievable through a public API
.add_external_relation('honoraryCitizen', {
# customizer.add_external_relation(
schema: { 'firstName' => 'String', 'lastName' => 'String' },
list_records: proc { |record|
response = HTTParty.get("https://api.mytown.com/cities/#{record['id']}/honorary-citizen")
response.body
}
})
endLast updated