0
@@ -9,6 +9,12 @@ module CommonThread
0
def has_many_attr(association_name, options = {})
0
eval "after_create :update_#{association_name}_attributes"
0
+ unless_condition = 'false'
0
+ if options[:check_blank]
0
+ blank_fields = options[:check_blank].is_a?(Array) ? options[:check_blank] : [options[:check_blank]]
0
+ unless_condition = blank_fields.map{|field| "(assoc_attr['#{field}'].blank? and assoc_attr[:#{field}].blank?)"}.join ' or '
0
def update_#{association_name}_attributes
0
self.#{association_name}_attributes = @#{association_name}_attributes if @#{association_name}_attributes
0
@@ -20,7 +26,7 @@ module CommonThread
0
for assoc_attr in attributes
0
#{association_name} = assoc_attr['id'].blank? ? self.#{association_name}.new : self.#{association_name}.find(assoc_attr['id'])
0
- #{association_name}.update_attributes(assoc_attr) unless #{
build_unless_condition options[:check_blank]}
0
+ #{association_name}.update_attributes(assoc_attr) unless #{
unless_condition}
0
@@ -28,20 +34,18 @@ module CommonThread
0
def has_one_attr(association_name, options = {})
0
- eval "after_create :update_#{association_name}_attributes"
0
+ # eval "after_create :update_#{association_name}_attributes"
0
+ unless_condition = 'false'
0
+ if options[:check_blank]
0
+ blank_fields = options[:check_blank].is_a?(Array) ? options[:check_blank] : [options[:check_blank]]
0
+ unless_condition = blank_fields.map{|field| "(assoc_attr['#{field}'].blank? and assoc_attr[:#{field}].blank?)"}.join ' or '
0
- def update_#{association_name}_attributes
0
- self.#{association_name}_attributes = @#{association_name}_attributes if @#{association_name}_attributes
0
def #{association_name}_attributes=(attributes)
0
- @#{association_name}_attributes = attributes
0
- #{association_name} = self.#{association_name} || self.build_#{association_name}
0
- #{association_name}.update_attributes(assoc_attr) unless #{build_unless_condition options[:check_blank]}
0
+ #{association_name} = self.#{association_name} || self.build_#{association_name}
0
+ #{association_name}.update_attributes(attributes) unless #{unless_condition}
0
@@ -49,15 +53,5 @@ module CommonThread
0
- def build_unless_condition(blank_fields)
0
- blank_fields = [blank_fields] unless blank_fields.is_a?(Array)
0
- blank_fields.map{|field| "(assoc_attr['#{field}'].blank? and assoc_attr[:#{field}].blank?)"}.join ' or '
Comments
No one has commented yet.