diff options
-rw-r--r-- | app/models/concerns/redis_cacheable.rb | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/app/models/concerns/redis_cacheable.rb b/app/models/concerns/redis_cacheable.rb index 53f022e2b35..b5425295130 100644 --- a/app/models/concerns/redis_cacheable.rb +++ b/app/models/concerns/redis_cacheable.rb @@ -7,11 +7,11 @@ module RedisCacheable class_methods do def cached_attr_reader(*attributes) attributes.each do |attribute| - unless self.column_names.include?(attribute.to_s) - raise ArgumentError, "`cached_attr_reader` requires the #{self.name}##{attribute} to be a database attribute" - end - define_method(attribute) do + unless self.has_attribute?(attribute) + raise ArgumentError, "`cached_attr_reader` requires the #{self.class.name}\##{attribute} attribute to have a database column" + end + cached_attribute(attribute) || read_attribute(attribute) end end @@ -50,9 +50,7 @@ module RedisCacheable if Gitlab.rails5? self.class.type_for_attribute(attribute).cast(value) else - ActiveSupport::Deprecation.silence do - self.class.column_for_attribute(attribute).type_cast_from_database(value) - end + self.class.column_for_attribute(attribute).type_cast_from_database(value) end end end |