module PDC::Resource::Associations::ClassMethods
Public Instance Methods
has_many(name, options = {})
click to toggle source
# File lib/pdc/resource/associations.rb, line 15 def has_many(name, options = {}) create_association(name, HasMany, options) define_method "#{name.to_s.singularize}_ids=" do |ids| attributes[name] = [] ids.reject(&:blank?).each { |id| association(name).build(id: id) } end define_method "#{name.to_s.singularize}_ids" do association(name).map(&:id) end end
reflect_on_association(name)
click to toggle source
# File lib/pdc/resource/associations.rb, line 28 def reflect_on_association(name) associations[name] || associations[name.to_s.pluralize.to_sym] end
Private Instance Methods
create_association(name, type, options)
click to toggle source
# File lib/pdc/resource/associations.rb, line 34 def create_association(name, type, options) self.associations = associations.merge(name => Builder.new(self, name, type, options)) end