Module: StudySubjectAddresses
- Included in:
- StudySubject
- Defined in:
- app/models/study_subject_addresses.rb
Overview
Simply extracted some code to clean up model. I’d like to do this to all of the really big classes but let’s see how this goes first.
Class Method Summary collapse
Class Method Details
.included(base) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'app/models/study_subject_addresses.rb', line 7 def self.included(base) # Must delay the calls to these ActiveRecord methods # or it will raise many "undefined method"s. base.class_eval do has_many :addressings has_many :addresses, :through => :addressings accepts_nested_attributes_for :addressings, :reject_if => proc { |attrs| !attrs[:address_required] && attrs[:address_attributes][:line_1].blank? && attrs[:address_attributes][:line_2].blank? && attrs[:address_attributes][:unit].blank? && attrs[:address_attributes][:city].blank? && attrs[:address_attributes][:zip].blank? && attrs[:address_attributes][:county].blank? } # Returns number of addresses with # address_type.key == 'residence' def residence_addresses_count addresses.count(:conditions => { :address_type_id => AddressType['residence'].id }) end end # class_eval end |