我有一个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,但之后的任何版本都没有。对于我可能做错的事,有没有人有任何好的建议?或者更好的方法来实现同样的目标?
先谢谢你的帮助 - 这让我疯了!
答案 0 :(得分:0)
试试这种方式!
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