上传的文件应该在哪里存储在Rails 3.1中?

时间:2011-05-24 21:16:54

标签: ruby-on-rails ruby-on-rails-3

用户上传文件时。在Rails 3.0+中,这些将进入公共/上传。 3.1,上传的文件应该转到app / assets / uploads吗?或者仍然在公开/上传?

在我们的环境中,这不是一个真正的问题,因为我们正在使用S3。只是想了解Rails 3.1的新目录结构。

你有什么想法?

4 个答案:

答案 0 :(得分:7)

公共目录,capistrano建议使用public / system /

不要被app / assets目录弄糊涂,它通常用于css / js / coffeescript文件,认为这是从3.0到3.1的最大变化

答案 1 :(得分:3)

嗯,答案很简单:您的用户只能访问您的/public目录。

只有一些技巧可以获得cssjs,但你必须坚持使用/public来获取其他内容。

一般来说,我把所有内容放在/public/assets

答案 2 :(得分:0)

添加到apneadiving的答案:

如果使用Carrierwave,临时文件位于系统的/ tmp目录中,上传的文件位于$ RAILS_ROOT / public下的子目录中,例如: $ RAILS_ROOT /公/上传/ YOUR-MODEL /...

在Rails 3.1中,'assets'目录适用于JavaScript和CSS文件,因此链接器可以在那里选择它们,因此它们不能直接通过“public”目录访问。 。

  see: assets/javascripts/application.js and assets/stylesheets/application.css  files
  see: http://railscasts.com/episodes/265-rails-3-1-overview

app / assets目录适用于CoffeeScript文件(也不可公开访问,因此不能放置上传文件)

答案 3 :(得分:0)

只有拥有一个文件服务器或网络映射存储时,才能将上传的文件放在文件系统中...我通常只将这些文件放在数据库中。

但正如vrsmn所说,不要为此使用资产,资产管道用于简化css / js / application图像。