forked from fixin.me/fixin.me
18 lines
592 B
Ruby
18 lines
592 B
Ruby
class ApplicationRecord < ActiveRecord::Base
|
|
class << self
|
|
# Cached attribute has non-user assignable value calculated from other
|
|
# attributes' values on create/update. This simplifies and speeds up
|
|
# actions, especially for recursively calculated values. Because value can
|
|
# be changed on update, it is not same as #attr_readonly.
|
|
def attr_cached(*names)
|
|
names.each { |name| alias_method :"#{name}=", :assign_cached_attribute }
|
|
end
|
|
end
|
|
|
|
def assign_cached_attribute(value)
|
|
raise ActiveRecord::ReadonlyAttributeError
|
|
end
|
|
|
|
primary_abstract_class
|
|
end
|