Rails.root vs directory path



>我有一个应用程序,我使用 SoX 转换音频文件,代码相同

system "sox public/sound/recording.wav  public/sound/recording.mp3"

这在我的开发计算机上运行良好,但在测试服务器上则不然。此外,当我在 rails 控制台中运行此代码时,它可以在测试服务器上很好地工作。后来我将代码更改为下面

file1 = Rails.root.join("public/sound/recording.wav")
file2 = Rails.root.join("public/sound/recording.mp3")
system "sox #{file1} #{file2}"

这在服务器上有效。所以我有两个问题

  1. 为什么早期的代码在开发计算机上工作,但在测试服务器上不起作用?
  2. 还有为什么早期的代码在从 rails 控制台调用时有效?

这可能是权限问题。运行 Web 服务器的帐户是否具有对公共/声音的写入访问权限。这可以解释为什么在 Rails 控制台中工作,因为您会以您和我假设这也是创建目录的帐户一样登录。

相关内容

最新更新