将Jbuilder json对象渲染为json时出现问题

时间:2017-01-16 10:43:50

标签: ruby-on-rails json

我正在开发RoR的学生跟踪网站。在模型中,我有以下代码来构建json

self.as_json
  json = Jbuilder.new do |j|
    j.courses student_courses do |course|
      j.(course, :id, :name)
      j.students students, :name
    end
  end.target!
  puts json
  return json
end

我的控制器代码是

render json: {
  courses: course.as_json,
}

并制作

{"courses":[
"{\"id\": 1,\"name\": \"english\",\"students\": [{\"name\": \"ALison\"},{\"name\": \"Robert\"}]
},{...}...  ]"

而不是

 "courses" : [
{
    "id": 1,
    "name": "english",
    "students": [
        {"name": "ALison"},
        {"name": "Robert"}]
}, {..},...    
]

它在每个双引号之前添加转义字符(/)。我该如何解决这个问题

1 个答案:

答案 0 :(得分:0)

嘿,你可以用它来生成替代

   course.to_json(:include => { :students => { :only => :name } })