У меня есть одна модель, file.rb
, контроллер, filecontroller.rb
и набор видов для таблицы под названием files
. Это было сделано для загрузки файлов Excel, чтобы я мог просматривать список в индексном представлении, когда кто-то загружал файл Excel, время его создания и имя человека, который загрузил файл Excel.Рубин на рельсах. Модельные ассоциации
Теперь у меня есть еще одна модель, bottle.rb
, контроллер, bottlecontroller.rb
и набор представлений для таблицы в базе данных под названием bottles
. Столбцы в таблице бутылок в базе данных такие же, как файлы Excel.
У меня уже есть возможность загружать файлы excel после некоторых проверок, чтобы они могли перейти в таблицу files
в базе данных. И я также следовал руководству по рельсам, чтобы иметь возможность импортировать файл excel из индекса индекса бутылки и обновлять таблицу bottles
.
Однако, я хотел бы иметь возможность загрузить файл Excel и импортировать информацию в виде индекса файла. Но импорт также должен обновлять информацию в таблице бутылок. Другими словами, импорт Excel из представления индекса файла должен иметь возможность обновлять базу данных таблицы бутылок.
Я знаю, что мне нужна ассоциация между моей моделью files.rb
и моделью bottles.rb
.., но любая помощь была бы потрясающей!
************ Обновленный Вопрос ******************************** *********
В моем filecontroller.rb
, я добавил @file.bottles = Bottle.import(params[:file_url])
в метод создания после сохранения. Я храню файлы excel в :file_url
. Я также добавил ассоциацию в моей file.rb
модели has_many :bottles
def create
.........
..........
if file.save
@file.bottles = Bottle.import(params[:file_url])
end
end
И в моей модели бутылки bottle.rb
У меня есть
def self.import(file_url)
spreadsheet = Roo::Excel.new(file_url.path, packed:nil,file_warning: :ignore)
.........
bottle.save!
end
Но я получаю неопределенный метод path' for nil:NilClas error in this line
таблицу = Роо :: Excel.new (file_url.path, упакован: nil, file_warning:: ignore) `Это не распознавание file_url как путь к файлу Excel.
Вы посмотрели http://guides.rubyonrails.org/association_basics.html? – mysmallidea
@mysmallidea Спасибо за ссылку! Я просмотрел руководство, но я не уверен, как импортировать данные из файлов excel из представления индексного файла, который связан с его собственной парой контроллеров/модели в таблицу бутылок, которая имеет свои собственные представления/контроллер и модель. –