项目有这样的需求:上传一个 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