Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-Soulmate,导出到json,每行一项_Ruby On Rails_Json_Rake_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails-Soulmate,导出到json,每行一项

Ruby on rails Rails-Soulmate,导出到json,每行一项,ruby-on-rails,json,rake,ruby-on-rails-4,Ruby On Rails,Json,Rake,Ruby On Rails 4,我试着用灵魂伴侣来进行搜索和自动完成。但是,它需要一个json文件,其中包含一个模型下的所有数据,每行一项。当我使用to_json导出时,所有对象都用逗号分隔 这是我想要打印的内容: {"id":1,"term":"Dodger Stadium","score":85,"data":{"url":"\/dodger-stadium-tickets\/","subtitle":"Los Angeles, CA"}} {"id":28,"term":"Angel Stadium","score":8

我试着用灵魂伴侣来进行搜索和自动完成。但是,它需要一个json文件,其中包含一个模型下的所有数据,每行一项。当我使用to_json导出时,所有对象都用逗号分隔

这是我想要打印的内容:

{"id":1,"term":"Dodger Stadium","score":85,"data":{"url":"\/dodger-stadium-tickets\/","subtitle":"Los Angeles, CA"}}
{"id":28,"term":"Angel Stadium","score":85,"data":{"url":"\/angel-stadium-tickets\/","subtitle":"Anaheim, CA"}}
{"id":30,"term":"Chase Field ","score":85,"data":{"url":"\/chase-field-tickets\/","subtitle":"Phoenix, AZ"}}
{"id":29,"term":"Sun Life Stadium","score":84,"data":{"url":"\/sun-life-stadium-tickets\/","subtitle":"Miami, FL"}}
{"id":2,"term":"Turner Field","score":83,"data":{"url":"\/turner-field-tickets\/","subtitle":"Atlanta, GA"}}
这就是我打印的内容

[{"id":1,"first_name":"Philip","last_name":"nalle","location":"nallemia","email":"hejsan@hej.com","active":false,"created_at":"2013-06-26T15:00:38.990Z","updated_at":"2013-06-26T15:00:38.990Z"},{"id":2,"first_name":"Philip","last_name":"nalle","location":"hejsan123","email":"hejsan@asd.com","active":false,"created_at":"2013-06-26T15:01:45.905Z","updated_at":"2013-06-26T15:01:45.905Z"},{"id":3,"first_name":"hejsan","last_name":"hejsan","location":"asd","email":"asd@asda.com","active":false,"created_at":"2013-06-26T15:08:20.354Z","updated_at":"2013-06-26T15:08:20.354Z"},{"id":4,"first_name":"well well","last_name":"hello","location":"asd123","email":"asd@asd.com","active":false,"created_at":"2013-06-26T15:10:27.121Z","updated_at":"2013-06-26T15:12:29.991Z"}]
不要介意json中的实际数据,我只是从soulmates readme复制了一个示例。这就是rake任务

desc "Save all participants to json"
task :save_to_json => :environment do
    File.open("participants.json", "w") { |f| f.write(Participant.all.to_json)} 
end

要实现您想要的,您需要逐个输出元素。 它还可以节省内存,如果不是的话。如果有很多的话,你可以抓取1000个

desc "Save all participants to json"
task :save_to_json => :environment do
    File.open("participants.json", "w") do |f| 
        Participant.all.each do |participant| 
            f.write("#{participant.to_json}\n")
        end
    end
end