2017-01-05 2 views
0

Я хотел бы написать некоторые пользовательские данные в файл CSV, созданный в Rails, но мне не удалось успешно записать и получить данные. Возможно, что оно не написано, или что мой метод попытки его получить является ошибочным (или и тем, и другим).Запись в CSV в Rails в процессе производства

Это в моем статическом контроллере страниц:

def home 
    line = ["static_pages","home","test"] 
    CSV.open("db/output.csv", "ab") do |csv| 
    csv << line 
    end 
    ... 
end 

Я попробовал два способа просмотра серийную версию файла output.csv, как с тем же результатом. Метод

# 1:

$ heroku run console 
> Dir.chdir("db") 
> puts CSV.open("output.csv").read() 

Способ № 2

$ git fetch 
$ git checkout FETCH_HEAD -- db/output.csv 

Оба метода возвращают версию файла, который был совсем недавно обновленный в то время как в среде разработки.

Я мог бы легко пропустить что-то принципиальное здесь. Пожалуйста, дайте мне знать, что, по вашему мнению, может быть проблемой.

ответ

1

Вы не должны полагаться на файловую систему Heroku. https://devcenter.heroku.com/articles/dynos#ephemeral-filesystem. Рассматривайте его как «только для чтения» и пытайтесь использовать другой метод для хранения данных (например, базы данных).

+0

Спасибо. Я получил этот совет от друга на FB, который объяснил, что мне нечего выиграть, не используя базу данных, что имеется много доступной памяти и что каталог приложений не является надежным местом для хранения данных. Я создал просто модель Activity, которая будет делать трюк. –

Смежные вопросы