Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何从Rails应用程序内部设置系统调用的路径?_Ruby On Rails_Ruby On Rails 3_Phantomjs - Fatal编程技术网

Ruby on rails 如何从Rails应用程序内部设置系统调用的路径?

Ruby on rails 如何从Rails应用程序内部设置系统调用的路径?,ruby-on-rails,ruby-on-rails-3,phantomjs,Ruby On Rails,Ruby On Rails 3,Phantomjs,我正在尝试从rails执行phantom.js模块。到目前为止,我已经成功地安装了二进制文件,phantomjs的路径似乎运行良好 但是,当我尝试使用backtick(例如:phantomjs rasterize.js 1.jpg)从rails应用程序运行它时,它说没有这样的文件或目录 我认为原因是它找不到rasterize.js的路径 我尝试将rasterize.js文件放在#{Rails.root}、公共文件夹、控制器文件夹中,但没有任何效果 我怎样才能解决这个问题 ==== 更新:为了澄清

我正在尝试从rails执行phantom.js模块。到目前为止,我已经成功地安装了二进制文件,phantomjs的路径似乎运行良好

但是,当我尝试使用backtick(例如:phantomjs rasterize.js 1.jpg)从rails应用程序运行它时,它说没有这样的文件或目录

我认为原因是它找不到rasterize.js的路径 我尝试将rasterize.js文件放在#{Rails.root}、公共文件夹、控制器文件夹中,但没有任何效果

我怎样才能解决这个问题

====

更新:为了澄清,我发布了哪些代码在我的控制器中工作,哪些不工作

def create
  'phantomjs'
end

有趣的。。。我一直在尝试各种组合,最后遇到了一个有效的案例,但这并不是我所期望的:

%x("/usr/local/bin/phantomjs /Users/e/Dropbox/Projects/rails/screenshots/rasterize.js http://google.com app/assets/images/2709.jpg")

有趣的。。。我一直在尝试各种组合,最后遇到了一个有效的案例,但这并不是我所期望的:

%x("/usr/local/bin/phantomjs /Users/e/Dropbox/Projects/rails/screenshots/rasterize.js http://google.com app/assets/images/2709.jpg")

假设您的命令是
cmd
。很高兴知道
%(cmd)
exec(cmd)
,更改您正在运行的进程,因此如果您在rails中,并且更改了它将退出的目录。另一方面,`
cmd
`和
system(cmd)
将允许您继续工作


我从这个博客上了解到了这一点

假设您的命令是
cmd
。很高兴知道
%(cmd)
exec(cmd)
,更改您正在运行的进程,因此如果您在rails中并更改了它将退出的目录。另一方面,`
cmd
`和
system(cmd)
将允许您继续工作


我从这个博客上了解到了这一点

没有那么多的代码。看起来这显然是路径问题,我确实对问题进行了一些更新……尝试显式地设置路径,如
“phantomjs{Rails.root}/rasterize.js”
我开始认为这可能不是路径问题。我尝试设置绝对路径,命令中确实包含绝对路径,但它只是说没有这样的文件或目录。也许rails不允许javascript执行?:(sh:/usr/local/bin/phantomjs/Users/e/Projects/rails/screenshots/app/controllers/js/rasterize.js:没有这样的文件或目录哦,这是在我试图将rasterize.js放在一个名为js的单独文件夹中之后,我创建了一个名为js的文件夹。没有太多的代码。看起来这显然是路径问题,我确实对这个问题进行了一些更新……试着显式设置路径,如
“phantomjs#{Rails.root}/rasterize.js”
我开始认为这可能不是路径问题。我尝试设置绝对路径,命令中确实包含绝对路径,但它只是说没有这样的文件或目录。也许Rails不允许javascript执行?:(sh:/usr/local/bin/phantomjs/Users/e/Projects/rails/screenshots/app/controllers/js/rasterize.js:没有这样的文件或目录哦,这是在试图将rasterize.js放在一个单独的名为js的文件夹中之后,我创建了这个文件夹。。不要在
%x(…)中使用引号
。此外,我注意到在问题的更新中,您在命令周围加了单引号,而不是反勾。这是一个打字错误吗?不要在
%x(…)
中使用引号。此外,我注意到在问题的更新中,您在命令周围加了单引号,而不是反勾。这是一个打字错误吗?
system("/usr/local/bin/phantomjs /Users/e/Dropbox/Projects/rails/screenshots/rasterize.js http://google.com app/assets/images/2709.jpg")