Извините за мой плохой английский sh и за любую глупую ошибку, но я учу Ruby с нескольких месяцев. Я пытаюсь прочитать из файла .xlsx usign roo gem и после того, как я сохраню свои строки в базе данных, в уже существующей модели. Вот моя модель Суда:
class Court < ApplicationRecord
belongs_to :type
validates :type_id, presence: true
validates :name, presence: true
validates :email, presence: true, uniqueness: true
validates :responsible, presence: true
validates :address, presence: true
validates :telephone, presence: true, format: { with: /\A([0-9]*\-?\ ?\/?[0-9]*)\Z/ }
geocoded_by :address
after_validation :geocode, :if => :address_changed?
end
# == Schema Information
#
# Table name: courts
#
# id :integer not null, primary key
# type_id :integer
# name :string(255)
# email :string(255)
# email_type :string(255)
# responsible :string(255)
# address :string(255)
# telephone :string(255)
# latitude :decimal
# longitude :decimal
# created_at :datetime not null
# updated_at :datetime not null
#
, и я создал следующую задачу: excel.rake , чтобы прочитать с рутом все файлы:
namespace :excel do
desc "Import Courts from Excel"
task import_courts: :environment do
xlsx = Roo::Excelx.new(Rails.root.join('app', 'assets', 'excel', 'Tribunali.xlsx'))
xlsx.parse(headers: true) do |hash|
puts hash.inspect # Array of Excelx::Cell objects
@court = Court.new
@court.hash
@court.save
end
end
end
В файле у меня те же заголовки модели, что, действительно, когда я запускаю задачу, я получаю следующий вывод:
{"Tipo"=>"Tipo", "Nome"=>"Nome", "Indirizzo e-mail"=>"Indirizzo e-mail", "Tipo email"=>"Tipo email", "Responsabile"=>"Responsabile", "Indirizzo"=>"Indirizzo", "Numero Telefonico"=>"Numero Telefonico"}
{"Tipo"=>"AMM", "Nome"=>"Ministero della Giustizia", "Indirizzo e-mail"=>"gabinetto.ministro@giustiziacert.it", "Tipo email"=>"PEC", "Responsabile"=>"Alfonso Bonafede", "Indirizzo"=>"Via Arenula, 70 - 00186 Roma (RM)", "Numero Telefonico"=>"06 68851"}
{"Tipo"=>"AOO", "Nome"=>"Archivio Notarile Distrettuale di Agrigento", "Indirizzo e-mail"=>"archivionotarile.agrigento@giustiziacert.it", "Tipo email"=>"PEC", "Responsabile"=>"Daniela Portera", "Indirizzo"=>"Via S. Vito, 97/103 - 92100 Agrigento (AG)", "Numero Telefonico"=>"09 2220290"}
{"Tipo"=>"AOO", "Nome"=>"Archivio Notarile Distrettuale di Alessandria", "Indirizzo e-mail"=>"archivionotarile.alessandria@giustiziacert.it", "Tipo email"=>"PEC", "Responsabile"=>"Susanna Cesarone Bongiorno", "Indirizzo"=>"Via Ghilini, 42 - 15121 Alessandria (AL)", "Numero Telefonico"=>"01 31254163"}
{"Tipo"=>"AOO", "Nome"=>"Archivio Notarile Distrettuale di Ancona", "Indirizzo e-mail"=>"archivionotarile.ancona@giustiziacert.it", "Tipo email"=>"PEC", "Responsabile"=>"Margherita Regini Santojanni", "Indirizzo"=>"Piazzale Europa, 7 - 60125 Ancona (AN)", "Numero Telefonico"=>"07 12804055"}
{"Tipo"=>"AOO", "Nome"=>"Archivio Notarile Distrettuale di Aosta", "Indirizzo e-mail"=>"archivionotarile.aosta@giustiziacert.it", "Tipo email"=>"PEC", "Responsabile"=>"Antonio Santoro", "Indirizzo"=>"Via Monsignor De Sales, 3 - 11100 Aosta (AO)", "Numero Telefonico"=>"01 65361395"}
{"Tipo"=>"AOO", "Nome"=>"Archivio Notarile Distrettuale di Arezzo", "Indirizzo e-mail"=>"archivionotarile.arezzo@giustiziacert.it", "Tipo email"=>"PEC", "Responsabile"=>"Gianna Baroni Pedone", "Indirizzo"=>"Via Francesco Crispi, 58/4 - 52100 Arezzo (AR)", "Numero Telefonico"=>"05 7523243"}
Но в базе данных я не могу хранить эти данные. Кто-нибудь может мне помочь, пожалуйста? Извините заранее, если я забыл что-то сказать.