2017-01-16 10 views
0

私はRoRの学生追跡ウェブサイトで開発中です。モデルでは、私は、JSONjbuilder 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

はいなどの代替を生成するためにこれを使用することができます。あなたの選択肢は良いものです。しかし、jsonの形式でいくつかの変更が必要なので、Jbuilderを使って解決策を教えてもらえますか? – CR7

関連する問題