class RailsOptimizer::BelongsTo
Public Class Methods
_define(owner, name )
click to toggle source
# File lib/rails_optimizer/belongs_to.rb, line 4 def self._define(owner, name ) owner.__send__(:define_method, name) do |*args| return RailsOptimizer::BelongsTo.new(self, name, *args).get_target end end
Public Instance Methods
get_target()
click to toggle source
Calls superclass method
RailsOptimizer::Association#get_target
# File lib/rails_optimizer/belongs_to.rb, line 10 def get_target super do if args.empty? klass else klass.select(*args) end .execute(&reflection_scope) .execute(&finded) end end
Private Instance Methods
finded()
click to toggle source
# File lib/rails_optimizer/belongs_to.rb, line 24 def finded id = owner.read_attribute(foreign_key) proc { send(:find_by, {id: id}) } end
foreign_key()
click to toggle source
# File lib/rails_optimizer/belongs_to.rb, line 29 def foreign_key reflection.foreign_key.to_sym end