2012-04-14 51 views
1

我想從Rails傳輸嵌套的JSON到JavaScript。 到目前爲止,我成功地轉移以下JSON:如何在Rails中格式化嵌套的JSON?

[ 
    "name" : "task-1", 
    "relationships" : [ 
    {"follower": {"name" : "task-2"}}, 
    {"follower": {"name" : "task-3"}} 
] 

我想格式化這個JSON看起來像這樣:

[ 
    "name" : "task-1", 
    "relationships" : [ 
    {"name" : "task-2"}, 
    {"name" : "task-3"} 
] 

這是我如何產生JSON:

@tasks.to_json(
    :include => { :relationships => { 
        :include => :follower, 
        :only => :follower 
       } }) 

是有一些選項可以在我的to_json函數中指定擺脫「follower」鍵名稱?

回答

0

我結束了使用不同的查詢來解決問題:

@tasks = Task.to_json(:include => :followed_tasks) 

followed_tasksTask模型中定義:

has_many :relationships, foreign_key: "follower_id", dependent: :destroy 
has_many :followed_tasks, through: :relationships, source: :followed 

這給了我很好的格式化的JSON:

[ 
    "name" : "task-1", 
    "followed_tasks" : [ 
    { "name" : "task-2" }, 
    { "name" : "task-3" } 
] 
0

原來有。選項是:

ActiveRecord::Base.include_root_in_json = false 

你應該能夠把它扔到config/environment.rb並且很好。

+0

感謝您的建議。雖然沒有爲我工作。不知道爲什麼,但無論此變量設置爲「true」還是「false」,我都獲得相同的JSON。 – lanan 2012-04-16 14:31:49