class ActiveModelValidators::ImmutabilityValidator
Attributes immutability validator¶ ↑
Public Instance Methods
validate_each(record, attribute, value)
click to toggle source
Adds error if there an attempt to change an immutable attribute
-
record
- ActiveRecord model -
attr
- model attribute which is supposed to be immutable -
value
- value
Example¶ ↑
class Model < ActiveRecord::Base validates :my_atribute, :'active_model_validators/immutability' => true end my_model_instance = MyModel.create(my_attribute: 'foo') my_model_instance.my_attribute = 'bar' my_model_instance.valid? # => false
# File lib/active_model_validators/immutability_validator.rb, line 20 def validate_each(record, attribute, value) return if record.new_record? if record.public_send("#{attribute}_changed?") record.errors.add(attribute, :immutability) end end