2012-07-06 77 views
1

我从Rails应用程序生成json,并使用format.json和to_json方法过滤字段。它工作正常,除了json没有对象名称。这是Rails代码:format.json不包含对象名称

format.json { render :json => @text.to_json(:only =>[:id,:language,:text_name,:text_type,:text_content])} 

并且json输出的一部分:

[{"id":5,"language":"TR","text_name":"2.01 AY\u015eE'DEN MEKTUP","text_type":null},{"id":6,"language":"TR","text_name":"2.02 Ruya","text_type":null},{"id":7.... etc 

在哪里我想我会得到什么指示对象的名称(如:“文本”)。沿线的更多:

{"texts:"[{"id":5,"language":"TR","text_name":"2.01 AY\u015eE'DEN MEKTUP","text_type":null},{"id":6,"language":"TR","text_name":"2.02 Ruya","text_type":null},{"id":7.... etc 

回答

4

下使生产线将生产出您正在寻找的结果是:

format.json { render :json => { :texts => @text.to_json(:only =>[:id,:language,:text_name,:text_type,:text_content])}} 
+0

非常快速回复:谢谢。我确实尝试了新的代码,但没有更改json输出。 – ardochhigh 2012-07-06 07:56:24

3

另一种办法是使全局设置:

ActiveRecord::Base.include_root_in_json = true 
+0

好的,我将它添加到config \ application.rb中,但它似乎没有什么区别。 'class Application ardochhigh 2012-07-06 08:20:16

+0

确定了它:我直接在模型中添加了'self.include_root_in_json = true'。非常感谢。我会给Erix Rabih的答案,因为它包含了代码更改,但是都投了票。干杯。 – ardochhigh 2012-07-06 08:22:42