跳至内容 跳至搜索

Base 用于序列化和反序列化自定义对象的类。

示例

class MoneySerializer < ActiveJob::Serializers::ObjectSerializer
  def serialize(money)
    super("amount" => money.amount, "currency" => money.currency)
  end

  def deserialize(hash)
    Money.new(hash["amount"], hash["currency"])
  end

  def klass
    Money
  end
end
方法
D
N
S
包含的模块

类公共方法

new()

# File activejob/lib/active_job/serializers/object_serializer.rb, line 31
def initialize
  super
  @template = { Arguments::OBJECT_SERIALIZER_KEY => self.class.name }.freeze
end

实例公共方法

deserialize(hash)

从 JSON 原始类型反序列化参数。

# File activejob/lib/active_job/serializers/object_serializer.rb, line 47
def deserialize(hash)
  raise NotImplementedError, "#{self.class.name} should implement a public #deserialize(hash) method"
end

serialize(hash)

将参数序列化为 JSON 原始类型。

# File activejob/lib/active_job/serializers/object_serializer.rb, line 42
def serialize(hash)
  @template.merge(hash)
end

serialize?(argument)

确定是否应由序列化器序列化参数。

# File activejob/lib/active_job/serializers/object_serializer.rb, line 37
def serialize?(argument)
  argument.is_a?(klass)
end