class ActiveModel::Validations::UnchangeableValidator
Public Instance Methods
validate_each(record, attribute, _value)
click to toggle source
# File lib/validates_unchangeable/active_model.rb, line 8 def validate_each(record, attribute, _value) if !record.public_send("#{attribute}_changed?") || (record.public_send("#{attribute}_was") == default_value_for(record, attribute) && !record.public_send(attribute).nil?) return end record.errors.add(attribute, :unchangeable) end
Private Instance Methods
default_value_for(record, attribute)
click to toggle source
# File lib/validates_unchangeable/active_model.rb, line 20 def default_value_for(record, attribute) return unless record.class.respond_to?(:column_defaults) record.class.column_defaults[attribute.to_s] end