ruby-on-rails-3 – 如何将文件导入Carrierwave
发布时间:2020-12-17 01:58:58 所属栏目:百科 来源:网络整理
导读:所以我有一个应用程序使用rails 3和 mongodb提供文件.我想使用转轮进程将所有文件导入gridfs,而不为系统中已有的文件创建新的ObjectId.基本上,我想使用carrierwave将文件附加到数据库中已有的文件对象. 出于某种原因,当我创建一个新的文件文档时,我可以没有
所以我有一个应用程序使用rails 3和
mongodb提供文件.我想使用转轮进程将所有文件导入gridfs,而不为系统中已有的文件创建新的ObjectId.基本上,我想使用carrierwave将文件附加到数据库中已有的文件对象.
出于某种原因,当我创建一个新的文件文档时,我可以没有问题地附加本地文件.但是,我不能将本地文件附加到以前创建的文档. 我已经尝试了各种形式的Mongoid更新,并且每次我得到一个方法缺失或未识别的方法. 例如,这有效: somefile = Upload.new( :name => "somefile.ext" ) somefile.upload = File.open("/foo/bar.ext") somefile.save! 但这不是: somefile = Upload.first(:conditions => {:name => "somefile.ext"}) somefile.upload = File.open("/foo/bar.ext") somefile.save! 有任何想法吗? 解决方法
您可以通过以下方式为现有对象保存新文件:
somefile = Upload.find_by_name("somefile.ext").first unless somefile.blank? somefile.remove_upload = true somefile.save! somefile.upload = File.open("/foo/bar.ext") somefile.save! end 如你看到的, somefile.remove_upload = true 手段 somefile.remove_your_mounted_uploader = true (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |