为什么我的关联没有呈现给JSON?

Nat*_*ong 2 json ruby-on-rails ruby-on-rails-3

我试图在Rails 3.0.2中控制用户对象的JSON渲染.这是相关的型号代码:

class User < ActiveRecord::Base

  belongs_to :employer
  has_and_belongs_to_many :roles

  def as_json(options={}) 
    super(options.merge(:include => [:employer, :roles])) 
  end
end
Run Code Online (Sandbox Code Playgroud)

这是我得到的JSON表示:

{"user":{"employer":{},"roles":[{},{},{}],"email":"user.user@example.com"}}
Run Code Online (Sandbox Code Playgroud)

此用户确实有三个角色,因此该:include语句以某种方式查找关联,但角色和雇主对象未转换为JSON.

如果我有一个as_json这样的模型,返回垃圾,它仍然没有出现.

我做错了什么,或者这是一个错误?(在我从Rails 3.0.0升级之前,它没有为协会呈现任何内容,我从这个问题中学到了这一点.)

Din*_*tih 5

您可以尝试: to_json(:include => [:employer, :roles])代替as_json

http://api.rubyonrails.org/classes/ActiveModel/Serializers/JSON.html