Slide 42
Slide 42 text
WeeklyBasket.reflect_on_all_associations.each do |association|
next if association.macro != :belongs_to
foreign_key_field = klass.reflections[association.name.to_s].foreign_key
column = klass.columns.find { |c| c.name == foreign_key_field.to_s }
required = association.options.fetch(:required, true) &&
!association.options.fetch(:optional, false)
if required && column.null
exceptions << sprintf(“%-50s required, but column is nullable",
"#{klass}##{association.name}")
elsif !required && !column.null
exceptions << sprintf("%-50s not required, but column is not nullable",
"#{klass}##{association.name}")
end
end