custom error validations

This commit is contained in:
Mark Moser
2016-08-01 09:50:01 -05:00
parent dfd582d251
commit 95eec915c4
11 changed files with 79 additions and 24 deletions

View File

@ -0,0 +1,38 @@
class AnswerFormatValidator < ActiveModel::EachValidator
def validate_each(record, attribute, value)
send(record.question.input_type, record, attribute, value)
end
private
def text record, attribute, value
return unless value.length.between? 1, 1000
if value.blank?
record.errors[attribute] << (options[:message] || "Please enter an answer.")
end
if value.length > 1000
record.errors[attribute] << (options[:message] || "The character limit for a textarea answer is 1000")
end
end
def radio record, attribute, value
return unless value.nil?
record.errors[attribute] << (options[:message] || "Please select an answer.")
end
def checkbox record, attribute, value
return unless value.nil? || value.join.blank?
record.errors[attribute] << (options[:message] || "Please select an answer.")
end
def live_code record, attribute, value
return unless value.nil?
msg = "You must write code in one of the above textareas to progress."
record.errors[attribute] << (options[:message] || msg)
end
end