提交 f86b1984 编写于 作者: A Aaron Patterson

removed unnecessary translator object

上级 857bd732
require 'active_record/attributes/translator'
module ActiveRecord
module AttributeMethods
module Read
......@@ -139,20 +137,6 @@ def read_attribute(attr_name)
private
def attribute_translator
Attributes::Translator.new(@attributes, @columns_hash)
end
def cached_cast_attribute(attr_name, method)
@attributes_cache[attr_name] ||= cast_attribute(attr_name, method)
end
def cast_attribute(attr_name, method)
attribute_translator.cast_attribute(attr_name, method) do
missing_attribute(attr_name, caller)
end
end
def attribute(attribute_name)
read_attribute(attribute_name)
end
......
module ActiveRecord
module Attributes
class Translator # :nodoc:
def initialize(attributes, column_types)
@attributes = attributes
@column_types = column_types
end
def cast_attribute(attr_name, method)
v = @attributes.fetch(attr_name) { yield }
v && send(method, attr_name, v)
end
def cast_serialized(attr_name, value)
value.unserialized_value
end
def cast_tz_conversion(attr_name, value)
value = cast_column(attr_name, value)
value.acts_like?(:time) ? value.in_time_zone : value
end
def cast_column(attr_name, value)
@column_types[attr_name].type_cast value
end
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册