Я создаю скребок с Nokogiri
и Ruby on Rails
. Моя цель - вычистить работу с определенной веб-страницы. Я создал следующий код, который приводит к массиву названий должностей. Так что это отлично работает.
Моя проблема сейчас в том, что я хочу добавить эти названия в свою базу данных вакансий. Когда я набираю Vacancy.create(companyname=jobs[0])
, он должен создать Vacancy
с первым названием в массиве.
Но вместо этого выдает ошибку:
app / services / job_service.rb: 18: in `': неинициализированная константа
Вакансия (NameError)
Похоже, он не знает класс Vacancy
.
Поэтому мне понадобился файл vacancy.rb:
require_relative(../models/vacancy.rb')
Но тогда это дает мне еще одну ошибку:
неинициализированная константа ApplicationRecord (NameError)
Так что теперь я думаю, что я делаю что-то в корне неправильно здесь.
Я помещаю весь файл скребка в неправильную папку (я должен вероятно поместить это в папку граблей) ?. Все, что я хочу, - это выполнить что-то вроде Vacancy.create
, чтобы оно добавилось в мою базу данных вакансий (или Джобс).
Вот скребок (job_service.rb):
require 'open-uri'
require 'nokogiri'
url = "https://www.savedroid.com/#karriere-section"
html_file = open(url).read
html_doc = Nokogiri::HTML(html_file)
jobs = []
html_doc.search('.job').each do |element|
jobs << element.text.strip
end
Vacancy.create(companyname=jobs[0])