module Mongoid::UnscopedBelongsTo::ClassMethods
Public Instance Methods
unscoped_belongs_to(field, args = {})
click to toggle source
# File lib/mongoid/unscoped_belongs_to.rb, line 6 def unscoped_belongs_to(field, args = {}) belongs_to field, args define_method field do field_id = send("#{field}_id") field_name = "@#{field}" return nil if field_id.nil? cur_value = instance_variable_get field_name return cur_value if cur_value.present? clazz = Object.const_get self.relations[field.to_s].class_name cur_value = clazz.unscoped.find field_id return instance_variable_set field_name, cur_value end mongoid_setter = instance_method("#{field}=") define_method "#{field}=" do |field_value| instance_variable_set "@#{field}", field_value mongoid_setter.bind(self).call(field_value) end end