在 Ruby on Rails 中导入 CSV 文件时,是否存在允许用户选择与列关联的行的公认最佳实践?
这样他们上传文件 -> 得到一个带有列标题列表的确认屏幕,并为每个输入选择输入(填充模型的可写属性) -> 将每个 CSV 行保存到模型中,并选择列在上一步中。
基本上,我想要这里显示的功能:
http://youtu.be/5Ddnu_NK_-o?t=50s
如果没有更好的方法,我会这样做的方式是这样的:
- 用户上传文件
- 解析 CSV
- 显示前几行
- 显示一个表单,每个列都有选择输入,由可写属性和缓存文件填充
- 对于每个 POST 列名参数,将它们与列匹配(同时验证没有使用两次列名)
- 为每一行创建一个新记录
我承认,作为 RoR 的新手,第 4 步和第 5 步对我来说相当令人生畏,而且似乎必须经常遇到这种情况,但我还没有找到任何运气来找到有关该主题的宝石或教程。