Module: Datasource::Adapters::ActiveRecord::Model

Extended by:
ActiveSupport::Concern
Included in:
ActiveRecord::Base
Defined in:
lib/datasource/adapters/active_record.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#for_serializer(serializer = nil) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/datasource/adapters/active_record.rb', line 66

def for_serializer(serializer = nil)
  datasource_class = self.class.default_datasource
  pk = datasource_class.primary_key.to_sym

  scope = self.class
  .with_datasource(datasource_class)
  .for_serializer(serializer)
  .where(pk => send(pk))

  scope = yield(scope) if block_given?

  datasource = scope.get_datasource
  if datasource.can_upgrade?(self)
    datasource.upgrade_records(self).first
  else
    scope.first
  end
end