Intra-data source Relationships
This is the official documentation of the agent_ruby Ruby agent.
We've seen that when building data sources, collections must fulfill the contract they defined when declaring their capabilities.
The same is also true for Intra-data source relationships which are declared on the structure of a collection: declared relations must be handled when processing filters, projection, and aggregations.
In practice
one-to-many and many-to-many relationships do not require additional work: Forest Admin will automatically call the destination collection with a valid filter.
On the other hand, many-to-one and one-to-one relationships require the implementer to make all fields from the target collection available on the source collection (under a prefix).
Example
If a structure declaration contains the following statement
module App
module Collections
class Movie < ForestAdminDatasourceToolkit::Collection
include ForestAdminDatasourceToolkit::Schema
include ForestAdminDatasourceToolkit::Components::Query:: ConditionTree
def initialize(datasource)
super(datasource, 'Movie')
# [...]
add_field('director', ManyToOneSchema.new(
foreign_key: 'director_id',
foreign_key_target: 'id',
foreign_collection: 'People'
))
end
end
end
end
Then the collection must accept references to fields from the people collection under the director prefix in all method parameters.
should return
Last updated
Was this helpful?