Rails консольный вывод для воссоздания объектов - PullRequest
0 голосов
/ 03 января 2019

Я случайно удалил 1000 объектов из базы данных и теперь пытаюсь воссоздать эти объекты. К счастью, я смог прокрутить вывод своей консоли и найти записи. Я скопировал и вставил вывод консоли, который находится в этом (очень сокращенном) формате:

[#<Assignment id: 276503, school_id: 2091, listing_id: 251572, created_at: "2018-08-30 05:02:36", updated_at: "2018-08-30 05:02:36">, #<Assignment id: 279532, school_id: 1233, listing_id: 252702, created_at: "2018-08-30 06:19:12", updated_at: "2018-08-30 06:19:12">]
#...

Я не могу заставить консоль назначить этот вывод переменной, поэтому я могу понять, как использовать эти данные для воссоздания объектов в базе данных:

irb(main):040:0> a = [#<Assignment id: 276503, school_id: 2091, listing_id: 251572, created_at: "2018-08-30 05:02:36", updated_at: "2018-08-30 05:02:36">, #<Assignment id: 279532, school_id: 1233, listing_id: 252702, created_at: "2018-08-30 06:19:12", updated_at: "2018-08-30 06:19:12">]
irb(main):041:1*

У кого-нибудь есть идеи, как превратить этот вывод консоли в объекты в моей БД?

Ответы [ 2 ]

0 голосов
/ 03 января 2019

Если у вас есть проблемы с назначением огромного массива переменной в консоли, вы можете попробовать использовать задачу rake.

    array.each do |e|
      options = e.split(',')
      school_id = options.detect{|i| i.match?(/school_id/)}.split(':').last
      listing_id = options.detect{|i| i.match?(/listing_id/)}.split(':').last
      Assignment.create(school_id: school_id, listing_id: listing.id)
    end

Это должно работать. Это довольно много, но с другой точки зрения легко и быстро.

0 голосов
/ 03 января 2019

Я вставил бы этот вывод в превосходный или любой другой текстовый редактор, а затем отформатировал, чтобы он стал чем-то полезным ... Связка inserts с использованием SQL или просто .create(), которую я затем вставил бы в консоль

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