2017-01-16 55 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