【问题标题】:Ruby on Rails: FileUtils relative to server root?Ruby on Rails:FileUtils 相对于服务器根目录?
【发布时间】:2013-05-28 09:26:19
【问题描述】:

在使用 PHP 时,任何文件操作都是相对于服务器根目录完成的,因此将使用 mkdir("/home/website/public_html/a_directory 之类的东西在执行脚本的 public_html 文件夹中创建一个目录。

在 Rails 中,使用 FileUtils 模块,它相对于应用程序的路径,例如 FileUtils.mkdir('public/a_directory'),它将在应用程序的公共文件夹中创建一个文件夹。

我面临的问题是,我希望能够从我的应用程序中创建目录、移动文件、重命名文件/文件夹以及删除相对于服务器根目录的文件/文件夹。

实现这一目标的最佳方法是什么?还是我遗漏了一些明显的东西?

谢谢, 斯蒂芬

【问题讨论】:

    标签: ruby-on-rails directory fileutils


    【解决方案1】:

    FileUtil中可以使用绝对路径:

    FileUtil.mkdir('/tmp/foo')
    

    将在服务器/tmp/ 目录中创建目录foo

    Rail.root 包含您的 Rails 应用程序的根目录。

    你可以像Rails.root.join('public','a_directory')这样扩展路径。

    记住DOCUMENT ROOTRails.root.join('public')

    【讨论】:

    • 也许我没有正确解释。如果我的应用托管在/home/website/public_html/my_app/,我希望能够在home/website/public_html/another_folder/ 中操作文件/文件夹
    • 如果您的 Rails 应用程序位于 /home/website 中,那么您的应用程序位于 /home/website/app 中,而您的 DOCUMENT ROOT 位于 /home/website/public 中。然后Rails.root 指向/home/website,您可以从那里开始构建路径。
    • 啊,现在我想我明白你的问题了,更新答案
    • 我想我刚刚发现了可行的方法。这非常明显(我认为)。我只需要在FileUtils.mkdir() 函数的开头使用/ 将其与服务器根目录相关联。如果我不使用/,它与应用程序的根目录有关。
    • 感谢您的帮助,我知道您将如何回答这个问题。在暂存和生产之间切换时它会派上用场,因为我不需要更改代码来补偿。
    猜你喜欢
    • 2021-10-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-29
    • 2018-05-08
    • 1970-01-01
    • 2013-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多