module RailsPolymorphicSelect::BelongsToBuilderExtension
Public Instance Methods
define_accessors(mixin, reflection)
click to toggle source
Calls superclass method
# File lib/rails_polymorphic_select/belongs_to_builder_extension.rb, line 3 def define_accessors(mixin, reflection) super if reflection.options[:polymorphic] define_global_id_methods(mixin, reflection.name) end end
define_global_id_methods(mixin, name)
click to toggle source
# File lib/rails_polymorphic_select/belongs_to_builder_extension.rb, line 11 def define_global_id_methods(mixin, name) mixin.class_eval <<-CODE, __FILE__, __LINE__ + 1 def #{name}_global_id #{name}.try(:to_global_id) end def #{name}_global_id=(new_global_id) self.#{name} = if new_global_id.present? GlobalID::Locator.locate(new_global_id) end end CODE end