2017-01-16 56 views
0

我正在RoR的学生追踪网站中开发。在模型中我有以下代码来构建JSON将jbuilder json对象渲染为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"}] 
}, {..},...  
] 

它添加转义字符(/)在每个d之前双引号。我怎样才能解决这个问题

回答

0

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

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

是。你的选择是一个很好的选择。但是,您能否告诉我一个使用Jbuilder的解决方案,因为我需要对json格式进行一些更改 – CR7