【问题标题】:How to serialize non-associated models?如何序列化非关联模型?
【发布时间】:2013-06-12 00:33:42
【问题描述】:

我有两个没有关联的模型。

两个模型都使用自己的序列化器。

在模型 1 中,我有一个调用模型 2 的方法。

我想在模型 1 中序列化该调用,因此它从模型 2 返回一个集合,但要使用模型 2 的自定义序列化程序对集合进行序列化。

现在它最终使用 Rails 默认序列化程序而不是我定义的自定义序列化程序。

有没有办法强制它使用我的自定义序列化程序?

=============

示例代码:

class ModelOne < ActiveModel::Serializer
  attributes :id, :name, :all_model_two

  def all_model_two
    object.get_all_model_two
  end
end

class ModelTwo < ActiveModel::Serializer
  attributes :id, :name
end

方法 'get_all_model_two' 在 ModelOne 模型上指定。

【问题讨论】:

  • 你能粘贴你当前的序列化器吗?正确的答案取决于您使用的序列化程序类,例如rabl、ActiveModel::Serializer 等...
  • 我正在使用活动模型序列化程序
  • 你能粘贴一些代码吗?
  • 好的,我添加了一个示例。希望这会有所帮助。

标签: ruby-on-rails serialization


【解决方案1】:

我想出了办法。

我需要像这样包装我的方法调用:

def all_model_two
  object.get_all_model_two.active_model_serializer.new(object.get_all_model_two)
end

【讨论】:

    猜你喜欢
    • 2015-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多