Как файл JSON перезаписывается при каждом вызове моего метода ruby? - PullRequest
0 голосов
/ 17 марта 2019

Я попытался написать файл JSON. Каждый раз, когда пользователь моего приложения создает нового пациента в рельсах. Моя проблема с моим текущим подходом состоит в том, что при каждом вызове метода мой JSON-файл перезаписывается новым пациентом. Я хочу иметь возможность постоянно добавлять в файл JSON без перезаписи существующего содержимого. Любая помощь по этому вопросу будет принята с благодарностью!

writer.rb

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

patients_controller.rb

def create
    @patient = Patient.new(patient_params)

    Writer.writes(@patient)
end

1 Ответ

1 голос
/ 17 марта 2019

Вам необходимо указать открытый режим как «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

, и он должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...