class AssociationAccessors::SingularAssociation
Public Class Methods
define_association_methods(mixin, reflection, attribute)
click to toggle source
# File lib/association_accessors/singular_association.rb, line 3 def self.define_association_methods mixin, reflection, attribute association = reflection.name mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1 def #{association}_#{attribute} #{association}&.#{attribute} end def #{association}_#{attribute}= value association_class = association(#{association.inspect}).klass send :#{association}=, value && association_class.find_by!(#{attribute}: value) value end CODE end