Rails方法在控制台中工作,但不能通过浏览器

时间:2013-04-20 06:32:39

标签: ruby-on-rails ruby-on-rails-3 wget delayed-job

以下是我在模特中所做的事情:

:after_save after_save

def after_save
    self.delay.do_thing
end

def do_thing
    Dir.mkdir("#{Rails.root}/my/path")
    system("cd #{Rails.root}/my/path && wget -with-some-flags")
end

这在开发中完美无瑕。然而,在生产中,没有任何反应。没有错误,只是没有。

我检查了几件事:

  • 在运行之前将命令发送到日志以确保它实际构建正确
  • 手动运行命令以检查其是否正常工作
  • 打开一个生产Rails shell并执行myobject.do_thing,这也有效!
  • 在后退标记和system()命令之间切换,以检查它是否与子标记有关
  • 添加绝对命令路径,例如/usr/bin/wget,它也可以在命令行中使用,但不能在Web浏览器中使用。
  • 检查了保存到
  • 的文件夹的权限

我知道do_thing方法正在运行,因为它还会在执行thing的过程中创建一个文件夹,它确实出现在文件系统中,而不是wget的结果。

我真的很难过。有什么想法吗?

0 个答案:

没有答案