1

如果您使用Active Model SerializersRails 中生成 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 不是一个选项,你如何解决它?

4

1 回答 1

1

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

def id
  object.id
end
于 2014-01-07T22:18:57.297 回答