使用AMS Serializer作为另一个JSON对象的一部分

时间:2015-07-29 15:42:03

标签: ruby-on-rails active-model-serializers

是否有使用现有的ActiveModel :: Serializer类来创建哈希?

我在应用程序的某个部分使用AMS来处理渲染整个JSON对象,但在另一部分我希望能够手动构建json对象。即

same1 <- st231_eq1_alg$Output[st231_eq1_alg$Output %in% st231_eq1_alg$Input]
idx2 <- which(duplicated(st231_eq1_alg$Output))
same2 <- st231_eq1_alg$Output[idx2]
m <- matrix(NA, ncol = 10, nrow = 10)
for(i in 1:length(same1)) m[st231_eq1_alg$Output==same1[i], st231_eq1_alg$Input==same1[i]] <- same1[i] 
for(i in 1:length(same2)) m[st231_eq1_alg$Output==same2[i], st231_eq1_alg$Output==same2[i]] <- st231_eq1_alg_inv_f[idx2[i]]
print(c(m))

这可能吗?

1 个答案:

答案 0 :(得分:1)

到目前为止我找到的唯一方法就是这样做:

def serialize_data(resources)
  serializer_klass = ActiveModel::Serializer.serializer_for(resources)
  serializer = serializer_klass.new(resources)
  adapter = ActiveModel::Serializer::Adapter::FlattenJson.new(serializer)
  adapter.serializable_hash
end

它将资源属性作为哈希值。

在我的例子中,我会像

一样使用它
hash = {
  bla: serialize_data(Bla.first)
}