У меня есть приложение rails, где я хотел бы заполнить поля и ассоциации модели с помощью загрузки файла. Пользователю предоставляется форма с элементом ввода загрузки файла, затем после нажатия кнопки отправки приложение rails анализирует файл и использует его для построения ряда других моделей.
Упрощенный пример будет выглядеть следующим образом (обратите внимание, что для краткости для загрузки файла используется скрепка):
class Parent < ActiveRecord::Base
has_many :children, :class_name => 'Child'
has_attached_file :attachment
after_initialize do |parent|
File.open(attachment.path) do |file|
process(file)
end
end
private
def process(attachment_file)
# create some new children using the attachment, perhaps this?
attachment_file.each_line |line|
# note that the children can either be new or existing.
self.children << Child.find_or_initialize_by_message(:message => line)
end
end
end
class Child < ActiveRecord::Base
belongs_to :parent
end
Но моя проблема в том, что когда я сохраняю свой родительский объект, это дети не сохраняют. (Я использую Rails 2.3.10 и Ruby 1.8.7)
Что странно, так это то, что он работает с использованием Rails 2.3.4, но не в какой-либо версии после этого. У кого-нибудь есть хорошие предложения о том, что я могу делать неправильно? Или лучший способ добиться того же?
Заранее спасибо за помощь - это сводит меня с ума!