【问题标题】:Rails upload excel file, validate and saveRails上传excel文件,验证并保存
【发布时间】:2023-03-18 04:10:01
【问题描述】:

我正在开发一个 Rails 引擎,它上传一个 excel 文件,对其进行验证,如果没有错误,它将把它保存到数据库中。

现在,当用户安装引擎并转到引擎提供的路线时。他将有一个表格来上传excel文件。页面上有两个按钮,即uploadvalidate

一旦用户选择文件并且当他点击上传时,我希望该文件只被上传而不被保存在数据库中。一旦我收到消息,文件上传成功,我将验证文件。如果它是具有有效数据的有效 excel 文件,则它将被保存到数据库中。现在我不知道该怎么做。我在上传csvexcel 文件时看到了这个Railscasts 视频,但在这里他正在使用import 操作执行验证和保存操作,但是当用户单击validate 操作时我想要验证和保存操作。 This Questions 似乎与我的问题相似,但我不知道如何访问该上传的文件。我不希望将该文件保存在数据库中。我的意思是当用户单击上传按钮时,该文件只会上传而不是保存。比我将验证该文件并将其内容保存到数据库。

对于一些专家来说,这似乎是非常简单和简单的问题,但我对 Rails 很陌生,我不知道该怎么做。

请有人帮助我提供示例代码,以便我了解工作流程。另请注意,上传和验证操作都在同一页面上。因此,当文件上传时,它需要临时存储在某个地方,这是我面临的第一个问题。如果有人可以通过有关上传 excel 文件的示例代码告诉我工作流程,我可以完成所有任务。我只是在这里遇到问题,因为上传和验证操作都在同一页面上,所以在上传请求后它需要在该页面上,以便我可以验证该文件。

任何帮助将不胜感激,我是 Rails 的初学者,在这里真的很困惑。

【问题讨论】:

    标签: ruby-on-rails excel validation file-upload


    【解决方案1】:

    两种选择:

    1. 编写代码以上传文件并保存到 DB,并将 validated 列设置为 false。然后“验证”按钮将找到未验证的文件,对其进行验证并将validated 设置为true。您可以定期执行删除某个年龄的未验证文件的作业。如果您这样做,请使用像 Paperclip 这样的辅助 gem。

    2. 放弃文件上传框架,只需手动将上传的文件保存到Tempfile.new 'spreadsheet'This guide 带您了解如何做到这一点。将该文件名保存到 session 并在以后使用它进行验证。当您终于准备好持久化到 DB 时,再次考虑使用辅助 gem。

    【讨论】:

    • 实际上解决了这个问题。我开始感到困惑,但这已经完成了。感谢您的回复。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-08
    • 1970-01-01
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多