Files
codeocean/app/models/structured_error.rb
Sebastian Serth 5a36e57b9f Reuse ActiveRecord object after creating StructuredErrorAttributes
With these changes, the newly created StructuredError will have all StructuredErrorAttributes preloaded, thus speeding up further access to this association.
2023-03-20 23:43:53 +01:00

27 lines
732 B
Ruby

# frozen_string_literal: true
class StructuredError < ApplicationRecord
belongs_to :error_template
belongs_to :submission
has_many :structured_error_attributes
def self.create_from_template(template, message_buffer, submission)
create(
error_template: template,
submission:,
structured_error_attributes: template.error_template_attributes.filter_map do |attribute|
StructuredErrorAttribute.create_from_template(attribute, message_buffer)
end
)
end
def hint
content = error_template.hint
structured_error_attributes.each do |attribute|
content.sub! "{{#{attribute.error_template_attribute.key}}}", attribute.value if attribute.match
end
content
end
end