class Object

Public Class Methods

define_accessors(mixin, reflection) click to toggle source

Based on github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/collection_association.rb#L50 github.com/rails/rails/blob/master/activerecord/lib/active_record/associations/builder/singular_association.rb#L11

Calls superclass method
# File lib/extensions/has_one.rb, line 7
  def self.define_accessors(mixin, reflection)
    super
    name = reflection.name
    mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1
      def #{name}_id
        # if an attribute is already defined with this methods name we should just use it
        return read_attribute(__method__) if has_attribute?(__method__)
        association(:#{name}).reader.try(:id)
      end
    CODE
  end