Study Ruby on Rails. Day 17

Добавляем данные в БД с Nokogiri и seeds.rb. RubyMine.

How I was creating a web app on RoR without experience in web development.
Diary of the amateur.

Disclaimer: Данная серия постов ни на что не претендует, писалась исключительно для того, чтобы лучше понять предмет изучения, но, если вдруг это может помочь кому-то ещё, я буду рад.

04:32 p.m.

Сегодня мне нужно заполнить базу данных приложения тестовыми данными. Чтобы не делать это вручную, я установлю гем Nokogiri, который поможет разобрать веб-страницу с нужными мне данными и слить информацию из неё, добавив в нашу БД, используя скрипт в seeds.rb

Для начала:
gem install nokogiri

Затем открываем seeds.rb и пишем скрипт:

#1 Сначала, с помощью Nokogiri, мне нужно получить данные:
require ‘rubygems’
require ‘nokogiri’ 
require ‘open-uri’
page = Nokogiri::HTML(open(“http://site.com"))
#2 Теперь, из полученного документа я выберу конкретные элементы, используя css-селекторы, и переберу полученный массив методом each, создав карточки на моём сайте:
page.css(‘table[3] tr’).each do |a|
 Card.create(original_text: a.css(‘td[2]’).text, translated_text: a.css(‘td[3]’).text, review_date: Date.today + 3)
end
#3 Отлично! Я получил массив, состоящий из данных столбцов [2] и [3] таблицы [3], сайта http://site.com с помощью Nokogiri и на основе этих данных заполнил базу данных карточками с полями original_text и translated_text.

Источники:

RubyMine

Для того, чтобы облегчить себе жизнь, вволю наупражнявшись в консоли, я (по совету гуру) решил установить RubyMine: https://www.jetbrains.com/ruby/

Вот неплохая видео-инструкция по установке:
https://www.youtube.com/watch?v=73Eki5zSotg

День 18comming soon..

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.