Rails carrierwave 上传文件处理问题

alucardpj · 2012年06月14日 · 最后由 kenshin54 回复于 2012年06月14日 · 4362 次阅读

项目有这样的需求:上传一个 excel 文件,读取文件内容导入到数据库中去 我打算采用 carrierwave 来做上传功能,但查看了一些使用范例,一般都是直接绑定到 model 的字段,然后在表单中直接显示这个字段对应的上传控件。 但我这个需求其实上传的文件并不需要把文件名记录到 model/数据库中,只需要上传以后读取文件数据,然后文件就可以删除了。这种情况我该如何处理上传页面表单? 纯新手问。

需求挺诡异的 是不是可以在 model 层设置一个变量:file 如

class Model < ActiveRecord::Base
   attr_accessible :file

   mount_uploader :file, FileUploader  
end

这样应该不会将数据保存如数据库中,不知道可行否

其实需求是这样的: 用户可以创建批量操作活动 compaign,创建活动的时候上传一个 excel,里面每行记录每个批量操作的数据,上传了 excel 以后读取 excel 的内容,生成批量任务都挂在这个活动下面,然后可以执行这个活动开始批量处理任务 即: compaign has_many tasks 每一个 task 对应 excel 一行数据 这样我其实只需要在创建活动的时候上传文件,处理数据,然后这个文件就可以丢掉了。我不需要仅仅为了上传一个文件而在 compaign 上面再绑一个字段。那样总觉得很别扭。 有什么方法吗?

这种需求就不要用 Carrierwave 了,别用惯了这些 Gem 就忘了原生的功能

这个自己写应该也没有几行代码吧

#3 楼 @huacnlee ,直接从 params 读取文件数据处理就好了。

上传很容易写的,这种场景不要用 carrierwave

需要 登录 后方可回复, 如果你还没有账号请 注册新账号