Ruby on rails 在Rails中,我在哪里可以保存上传的文件?

Ruby on rails 在Rails中,我在哪里可以保存上传的文件?,ruby-on-rails,Ruby On Rails,我试图在Rails中找到文档文件处理,但没有成功。以下是指向文件类的链接(由文件\u归档\u标记的文档指定): 我认为应该有一套更好的源文档。我的主要问题是在哪里可以保存一个不可公开访问的文件。我感兴趣的是将文件上载的文件临时用于用户的“向导”目的。仅限于Rails文档 处理上载的源是 您可以使用gem“回形针”为您处理文件上载: 通常将上传的文件存储在公共/系统中,这是默认设置 回形针中的配置为: :rails_root/public/system/:class/:attachment/:

我试图在Rails中找到文档文件处理,但没有成功。以下是指向文件类的链接(由文件\u归档\u标记的文档指定):


我认为应该有一套更好的源文档。我的主要问题是在哪里可以保存一个不可公开访问的文件。我感兴趣的是将文件上载的文件临时用于用户的“向导”目的。

仅限于Rails文档 处理上载的源是

您可以使用gem“回形针”为您处理文件上载:

通常将上传的文件存储在公共/系统中,这是默认设置 回形针中的配置为:

:rails_root/public/system/:class/:attachment/:id_partition/:style/:filename
但如果您不想将其公开,可以将其更改为另一个主文件夹:

:rails_root/private/:class/:attachment/:id_partition/:style/:filename

Rails处理文件上传的方式与任何web框架非常相似:它将文件上传的处理留给您正在使用的web服务器(Apache、Nginx等)。然后,当文件上传完成后,它会为您的框架提供上传文件的位置(通常是临时文件)(以及类似MIME类型的内容)。由你决定如何处理该文件。Rails通过在控制器中提供Ruby文件对象来实现这一点

如果你使用像“回形针”这样的宝石,它可以让你更好地控制文件,而不仅仅是自己处理,你可以自动调整图像大小,或其他上传后挂钩,真的值得一看

如果你选择自己做,你需要控制器代码来获取文件对象(临时文件)并将其写入不同的位置。因此,如果您有一个包含多个部分的web表单,该表单包含一个文件:

<%= form_tag({:action => :upload}, :multipart => true) do %>
  <%= file_field_tag 'picture' %>
<% end %>
这是临时文件。Rails提供了两种额外的方法来确定原始文件名和MIME类型:

params[:picture].original_filename
params[:picture].content_type

如果您想在Heroku上访问它,您可以使用资产文件夹感谢您链接到模块源。我期待更多关于它的文档,无论是传统的还是技术性的。我知道回形针宝石,我想先体验一下Rails的“原生”上传。
params[:picture].original_filename
params[:picture].content_type