Rails.root vs目录路径

时间:2013-09-20 12:07:40

标签: ruby-on-rails

我有应用程序,我使用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控制台调用时有效?

1 个答案:

答案 0 :(得分:0)

这可能是权限问题。运行Web服务器的帐户是否具有对public / sound的写访问权限。这可以解释为什么在Rails控制台中工作,因为你本来就已经登录,我认为这也是创建目录的帐户。