2010-12-16 70 views
0

想要通过特定的散列获取所有数据库条目并将其作为json返回。我使用下面的代码:构建JSON文件的问题

@tasks = Task.find_all_by_hash(params[:hash]) 

    respond_to do |format| 
    format.json { render :json => @tasks } 
    end 

现在我有问题,我的json文件不正确。它具有以下的输出:

[ 
{ 
task: { 
hash: "9dfca619f00f5488785f6b74ad1b590beefaee7a88c04884bf197e7679f3" 
id: 4 
created_at: "2010-12-16T09:09:51Z" 
updated_at: "2010-12-16T09:14:10Z" 
done: true 
name: "Hallo" 
} 
}, 
{ 
task: { 
hash: "9dfca619f00f5488785f6b74ad1b590beefaee7a88c04884bf197e7679f3" 
id: 5 
created_at: "2010-12-16T09:12:37Z" 
updated_at: "2010-12-16T09:12:37Z" 
done: true 
name: "Test" 
} 
}, 
... 
] 

但实际上我希望它是这样的:

{ tasks: [ 

{"id":"1","date_added":"0001-02-22 00:00:00","post_content":"Check out my content, this is loaded via ajax and parsed with JSON","author":"Ryan Coughlin"}, 

{"id":"2","date_added":"0000-00-00 00:00:00","post_content":"More content, loaded. Lets try to add a form in and post via ajax and append the new data","author":"Billy Bob"} 

]} 

什么建议吗?谢谢!

回答

1

尝试将任务单独收集到一个数组并使用它创建一个json对象。有些东西就像

@tasks = Task.find_all_by_hash(params[:hash]) 
a = [] 
    @tasks.each do |t| 
    a << t[:task] 
    end 
    b = {:tasks => a} 

respond_to do |format| 
    format.json { render :json => b } 
end 
+0

很好用。谢谢! – Tronic 2010-12-16 11:37:13