📅  最后修改于: 2023-12-03 15:22:31.452000             🧑  作者: Mango
在 Rails 中,我们可以使用 Active Storage 来上传文件。然而,默认情况下,Active Storage 只支持常见的文件类型,如图片和视频。
如果你想允许用户上传 xlsx 或 csv 文件,你需要对 Active Storage 进行一些配置。
首先,你需要打开你的 config/application.rb
文件,并将以下代码添加到该文件的 class Application
中:
config.active_storage.content_types_allowed_above = %w(application/vnd.ms-excel text/csv)
上述代码将添加两种 MIME 类型,即 application/vnd.ms-excel
和 text/csv
。这样,Active Storage 就会接受上传这两种类型的文件。
接下来,你需要更新你的表单视图,以允许用户上传 xlsx 或 csv 文件。你可以使用 accept
属性来实现该功能。更新表单视图代码如下:
<%= form_with(model: @model, local: true) do |form| %>
<%= form.file_field :file, accept: ".xlsx,.csv" %>
<%= form.submit %>
<% end %>
accept
属性值为 ".xlsx,.csv"
(注意两个后缀之间没有空格),这将告诉浏览器只允许上传 xlsx 和 csv 文件。
```ruby
config.active_storage.content_types_allowed_above = %w(application/vnd.ms-excel text/csv)
<%= form_with(model: @model, local: true) do |form| %>
<%= form.file_field :file, accept: ".xlsx,.csv" %>
<%= form.submit %>
<% end %>