Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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 带JRuby的回形针_Ruby On Rails_Paperclip_Jruby - Fatal编程技术网

Ruby on rails 带JRuby的回形针

Ruby on rails 带JRuby的回形针,ruby-on-rails,paperclip,jruby,Ruby On Rails,Paperclip,Jruby,最近,我正在调整我的rails应用程序以在JRuby上运行。 我遇到的一个问题是回形针。 曲别针使用可卡因来运行命令行工具,如ImageMagick,并使用Process.spawn,其结果是: Errno::ECHILD: No child processes - No child processes waitpid at org/jruby/RubyProcess.java:512 waitpid at org/jruby/

最近,我正在调整我的rails应用程序以在JRuby上运行。 我遇到的一个问题是回形针。 曲别针使用可卡因来运行命令行工具,如ImageMagick,并使用Process.spawn,其结果是:

Errno::ECHILD: No child processes - No child processes waitpid at org/jruby/RubyProcess.java:512 waitpid at org/jruby/RubyProcess.java:497 waitpid at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line/runners/process_runner.rb:21 call at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line/runners/process_runner.rb:9 execute at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line.rb:77 run at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cocaine-0.3.0/lib/cocaine/command_line.rb:55 run at /home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/paperclip-3.2.0/lib/paperclip/helpers.rb:29 Errno::ECHILD:无子进程-无子进程 waitpid位于org/jruby/RubyProcess.java:512 waitpid位于org/jruby/RubyProcess.java:497 waitpid-at/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cookine-0.3.0/lib/cookine/command_-line/runner/process_-runner.rb:21 访问/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cookine-0.3.0/lib/cookine/command_-line/runners/process_-runner.rb:9 在/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cookine-0.3.0/lib/cookine/command_-line.rb:77执行 运行于/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/cookine-0.3.0/lib/cookine/command_-line.rb:55 运行于/home/cthulhu/.rvm/gems/jruby-1.6.7.2/gems/paperclip-3.2.0/lib/paperclip/helpers.rb:29 有什么方法可以让回形针在JRuby中顺利工作吗?我只在linux上运行我的应用程序,所以我不介意使用像ImageMagick这样的linux本机工具


Rails 3.2.8、JRuby 1.6.7.2

在深入研究了回形针和可卡因代码之后,我编写了一个初始化器,猴子可以在JRuby上修补可卡因

if RUBY_PLATFORM == 'java'
  module Cocaine
    class CommandLine
      def best_runner
        BackticksRunner.new
      end
    end
  end
end

然而,我仍然在寻找一个更干净的解决方案。

FWIW,我刚刚向可卡因大师推了一个访问器,允许您手动覆盖跑步者

Cocaine::CommandLine.runner = Cocaine::CommandLine::BackticksRunner.new

我不知道为什么jruby会报告该进程。spawn在不可用时可用,但至少我们有一个解决方法。

这仍然是jruby 1.7中的一个问题。Github页面上有一个关于JRuby的问题,将其定义为JRuby问题。对于我来说,在写这篇文章的时候,让它工作的唯一方法就是使用

cookine::CommandLine.runner=cookine::CommandLine::BackticksRunner.new


正如Cokine Github页面的一节所述。

上述代码中的小错误,应该是:Cokine::CommandLine.runner=Cokine::CommandLine::BackticksRunner.new我有这个问题,但我不知道应该在哪里或如何使用它。有什么见解吗?我把答案放在文件“project/config/environments/test.rb”中