Rails3:更改temp(tmp)目录的位置

时间:2011-04-18 20:01:59

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

我通常在我的本地Dropbox文件夹中开发。 tmp文件夹中的某些文件被浏览器锁定(并使Dropbox忙碌),Growl会抛出异常等等。

因此我正在寻找一个配置设置来将tmp-folder放在Rails-app包之外。这可能吗?

4 个答案:

答案 0 :(得分:6)

不是您正在寻找的答案 - 但我可以肯定地说,没有配置选项来改变Rails认为tmp文件夹的位置。该位置在Rails代码库中的许多不同位置进行了硬编码。

看起来符号链接同步原始文件,因此您可能会遇到相同的锁定问题。

如果你,那么你可以反过来使用符号链接来解决你的问题,即。在您的保管箱中创建外部项目,并将tmp以外的所有内容符号链接到保管箱中的文件夹中。

所以你可能会在~/work/rails_project/<all the rails dirs including tmp>中找到你的Rails应用,然后你会在你的保管箱中找到一个相应的目录,比如~/dropbox/rails_project,然后里面,你就可以了手动创建一堆符号链接然后删除tmp符号链接,使用bash你会这样做:

$ for f in ~/work/rails_project/*; do ln -s $f; done
$ rm tmp

如果您曾在应用的根目录中添加新文件/目录,则需要记住再次运行。

答案 1 :(得分:4)

ENV['TMPDIR'] = Rails.root.join('tmp')

答案 2 :(得分:2)

您无法更改tmp目录,但您可以配置tmp缓存目录。

# config/application.rb
config.cache_store                   = [ :file_store, "/tmp/rails-cache/" ]
config.assets.cache_store            = [ :file_store, "/tmp/rails-cache/assets/#{Rails.env}/" ]

您可以在configuration.rb

了解更多信息

答案 3 :(得分:1)

您可以使用选择性同步排除在Dropbox中同步的目录:http://www.dropbox.com/help/175/en

基本上选择Dropbox偏好设置并进入高级。选择选择性同步,然后查找要从同步中排除的文件夹[如果你必须深入到第一级目录深度,还有一个高级视图]