每次调用ruby方法时,如何覆盖JSON文件?

时间:2019-03-17 13:49:05

标签: ruby-on-rails ruby

我尝试编写JSON文件。每次我的应用程序用户在rails中创建新患者时。我当前方法的问题是,每次调用该方法时,新患者都会覆盖我的JSON文件。我希望能够连续添加到JSON文件而不覆盖现有内容。任何帮助,将不胜感激!

writer.rb

const date = moment(YOUR_DATE)
return (moment().diff(date, 'days') >= 2) ? date.fromNow() : date.calendar().split(' ')[0]

Patients_controller.rb

def self.writes(patient)
      events_json = []
      File.open("public/events.json","w") do |f|
        f.write(patient.to_json)
      end
    end
end

1 个答案:

答案 0 :(得分:1)

您需要将打开模式指定为“ a”,该模式将附加到文件末尾,如下所示:http://ruby-doc.org/core-2.6.2/IO.html#method-c-new

这意味着您可以将代码更改为此:

def self.writes(patient)
      events_json = []
      File.open("public/events.json","a") do |f|
        f.write(patient.to_json)
      end
    end
end

它应该可以工作。