class Rethinker::Relation::BelongsTo
Public Instance Methods
foreign_key()
click to toggle source
# File lib/rethinker/relation/belongs_to.rb, line 2 def foreign_key # TODO test :foreign_key @foreign_key ||= options[:foreign_key] || :"#{parent_name}_id" end
hook()
click to toggle source
# File lib/rethinker/relation/belongs_to.rb, line 12 def hook # TODO yell when some options are not recognized children_klass.field foreign_key children_klass.inject_in_layer :relations, <<-RUBY, __FILE__, __LINE__ + 1 def #{foreign_key}=(value) super @relations_cache[:#{parent_name}] = nil end def #{parent_name}=(new_parent) # TODO raise when new_parent doesn't have the proper type new_parent.save! if new_parent && !new_parent.persisted? self.#{foreign_key} = new_parent.try(:id) @relations_cache[:#{parent_name}] = new_parent end def #{parent_name} if #{foreign_key} @relations_cache[:#{parent_name}] ||= #{parent_klass_lazy}.find(#{foreign_key}) end end RUBY end
parent_klass_lazy()
click to toggle source
# File lib/rethinker/relation/belongs_to.rb, line 7 def parent_klass_lazy # TODO test :class_name @parent_klass_lazy ||= options[:class_name] || parent_name.to_s.camelize end