Active Model Serializer产生错误的ID

时间:2013-04-10 11:11:09

标签: ruby-on-rails ruby serialization

如果您使用Active Model Serializers在Rails中生成JSON API,请参阅RailsCast 409,然后像这样定义serializer ..

class ArticleSerializer < ActiveModel::Serializer
  attributes :id, :name, :content
end

..并尝试序列化对象(通常是render :json => article):

ArticleSerializer.new(article).as_json
=>  {:id=>158655280, :name => "a name", :content => "article content"}

然后它产生有时非常奇怪的ID和警告:Object#id will be deprecated; use Object#object_id,至少对于Ruby 1.8.7,Ruby 1.9.3似乎有效。

这是一个Ruby问题吗?

如果不能选择更新到Ruby 1.9.3,如何修复它?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。解决方案是在我的序列化器中定义一个id方法:

def id
  object.id
end