Ruby on rails 使用Open3执行rake任务

Ruby on rails 使用Open3执行rake任务,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图在控制器内捕获rake任务的输出,如下所示: buffer = [] Open3.popen3("rake namespace:task") do |stdin, stdout, stderr| begin while line = stdout.readline buffer << line end rescue end end buffer=[] popen3(“rake名称空间:task”)do | stdin、stdout、st

我试图在控制器内捕获rake任务的输出,如下所示:

buffer = []
Open3.popen3("rake namespace:task") do |stdin, stdout, stderr|
  begin
    while line = stdout.readline
      buffer << line
    end
  rescue
  end
end
buffer=[]
popen3(“rake名称空间:task”)do | stdin、stdout、stderr|
开始
而line=stdout.readline

buffer将source
gems.gthub.com
添加到gem文件解决了我的问题。

将source
gems.gthub.com
添加到gem文件解决了我的问题。

需要“open3”
添加到脚本顶部,并在脚本末尾添加
将buffer
放在脚本末尾对我有效。@PooyanKhosravi谢谢。很高兴知道。我将尝试在其他地方查找问题。您应该包括错误消息和堆栈跟踪。共享控制器代码也会有帮助。@PooyanKhosravi我更新了我的问题,并按照您的建议编写了错误消息。请看一看。我已将源“”添加到GEM文件并运行捆绑安装。它现在可以工作了。将
require“open3”
添加到脚本顶部,并在脚本末尾添加
将缓冲区
对我很有用。@PooyanKhosravi谢谢。很高兴知道。我将尝试在其他地方查找问题。您应该包括错误消息和堆栈跟踪。共享控制器代码也会有帮助。@PooyanKhosravi我更新了我的问题,并按照您的建议编写了错误消息。请看一看。我已将源“”添加到GEM文件并运行捆绑安装。它正在工作。
/home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/source/git.rb:191:in `rescue in load_spec_files': git://github.com/activescaffold/active_scaffold.git (at master) is not yet checked out. Run `bundle install` first. (Bundler::GitError)\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/source/git.rb:188:in `load_spec_files'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/source/path.rb:92:in `local_specs'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/source/git.rb:159:in `specs'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/lazy_specification.rb:53:in `__materialize__'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/spec_set.rb:88:in `block in materialize'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/spec_set.rb:85:in `map!'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/spec_set.rb:85:in `materialize'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/definition.rb:140:in `specs'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/definition.rb:185:in `specs_for'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/definition.rb:174:in `requested_specs'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/environment.rb:18:in `requested_specs'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/runtime.rb:13:in `setup'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler.rb:127:in `setup'\n", "\tfrom /home/adam/.rvm/gems/ruby-2.2.1/gems/bundler-1.10.6/lib/bundler/setup.rb:18:in `<top (required)>'\n", "\tfrom /home/adam/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'\n", "\tfrom /home/adam/.rvm/rubies/ruby-2.2.1/lib/ruby/site_ruby/2.2.0/rubygems/core_ext/kernel_require.rb:54:in `require'\n"