Class: ApiMaker::PreloaderBelongsTo
- Inherits:
-
PreloaderBase
- Object
- PreloaderBase
- ApiMaker::PreloaderBelongsTo
- Defined in:
- lib/api_maker/preloader_belongs_to.rb
Instance Attribute Summary
Attributes inherited from PreloaderBase
#ability, #api_maker_args, #collection, #data, #locals, #records, #reflection, #reflection_name, #select, #select_columns
Instance Method Summary collapse
Methods inherited from PreloaderBase
#accessible_query, #collection_ids, #initial_join_query, #initialize, #join_query, #join_query_with_joined_name, #join_query_with_normal_name, #joined_name, #models_with_join, #unconditioned_read_access?, #underscore_name
Constructor Details
This class inherits a constructor from ApiMaker::PreloaderBase
Instance Method Details
#preload ⇒ Object
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/api_maker/preloader_belongs_to.rb', line 2 def preload models.each do |model| model_id = ApiMaker::PrimaryIdForModel.get(model) records_for_model(model).each do |record| record.relationships[reflection_name] = model_id end serializer = ApiMaker::Serializer.new(ability: ability, api_maker_args: api_maker_args, locals: locals, model: model, select: select&.dig(model.class)) underscore_name = serializer.resource.underscore_name data.fetch(:preloaded)[underscore_name] ||= {} data.fetch(:preloaded).fetch(underscore_name)[model_id] ||= serializer end models end |