使用反引号从Rails App中启动另一个Rails服务器

迈克·乔治

我目前正在开发一个Rails应用程序,该应用程序可以用作另一个Rails应用程序的更新程序。

我正在执行更新程序,

  • 下载新版本的zip
  • 提取到正确的位置
  • 同步资产
  • 捆绑安装
  • 预编译资产
  • 使用-Bundle exec Rails服务器启动服务器

我在最后一步有问题。

当我跑步时:

Dir.chdir('../other-project')
`bundle exec rails server -d -p 3000`

从更新程序应用程序看来,它是从更新程序捆绑软件中提取的,而不是它应从中提取的新应用程序捆绑软件中提取的。

更新器是用Rails 4编写的,正在更新的应用程序是Rails 3。

当我尝试启动服务器时,得到以下信息:

/home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/railtie/configuration.rb:95:in `method_missing': undefined method `handlebars' for #<Rails::Application::Configuration:0x007f9de18de100> (NoMethodError)
    from /home/vagrant/apps/other-project/config/application.rb:22:in `<class:Application>'
    from /home/vagrant/apps/other-project>'
    from /home/vagrant/apps/other-project/config/application.rb:13:in `<top (required)>'
    from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:79:in `require'
    from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:79:in `block in server'
    from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:76:in `tap'
    from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:76:in `server'
    from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands/commands_tasks.rb:40:in `run_command!'
    from /home/vagrant/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/railties-4.1.4/lib/rails/commands.rb:17:in `<top (required)>'
    from script/rails:6:in `require'
    from script/rails:6:in `<main>'

从此输出中,我可以看出它正在尝试使用错误版本的Railties ...

当我手动cd ../other-projectbundle exec rails server -d -p 3000它工作正常。

有什么bash技巧可以用来解决这个问题吗?基本框是Ubuntu 14.04

谢谢!

迈克·乔治

好吧,我已经花了整整一个上午的时间进行故障排除,并且找到了解决方案!

您所要做的只是在以下位置设置BUNDLE_GEMFILE环境变量:

bundle exec rails server -d -p 3000

似乎Bundler需要一些帮助来找到项目Gemfile,因为我正在尝试在当前包中启动另一个应用程序,这是我创建的用于控制此更新程序将负责更新的应用程序的类。

我很高兴地说start方法终于按预期工作了!

class AppController
  @dir = Rails.root.join('../', 'Other-app/')

  def self.running?
    File.exist?("#{@dir}/tmp/pids/server.pid")
  end

  def self.start
    if running?
      puts "app already running"
    else
      Dir.chdir(@dir)
      puts "starting app..."
      `BUNDLE_GEMFILE=Gemfile bundle exec rails server -d -p 3000`
      puts "app started"
    end
  end

  def self.kill
    if not running?
      puts "app already dead"
    else
      Dir.chdir(@dir)

      puts "killing app..."
      `kill $(cat tmp/pids/server.pid)`
      puts "app dead"
    end
  end

  def self.restart
    if running?
      kill
      start
    else
      start
    end
  end
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Rails服务器在另一个文件夹中启动应用程序

来自分类Dev

Rails服务器在另一个文件夹中启动应用程序

来自分类Dev

在另一个Rails应用程序中使用一个Rails应用程序的Elasticsearch服务器

来自分类Dev

“ Rails服务器”创建一个名为“ server”的新应用,但不启动Rails服务器

来自分类Dev

如何使用PHP与服务器中的另一个应用程序一起使用?

来自分类Dev

强制图像使用另一个域(位于同一服务器中)

来自分类Dev

我想在 react js 中的另一个文件上使用类组件但没有服务器?

来自分类Dev

无法使用AWS无服务器脱机从另一个Lambda调用Lambda

来自分类Dev

如何使用grunt服务器请求另一个端口?

来自分类Dev

Xampp本地主机已加载,但XAMPP的Apache无法启动,而另一个Web服务器正在OSX 10.8.4上使用端口80

来自分类Dev

在另一个Rails中使用控制器中的方法

来自分类Dev

使用内置服务器将一个php文件链接到另一个

来自分类Dev

使用VirtualBox从另一个VM访问来自一个VM的本地http服务器

来自分类Dev

在Rails中访问另一个控制器中的一个控制器变量

来自分类Dev

使用相同的权限和相同的目录,可以访问我的apache服务器中的pdf文件之一,而另一个则无法访问

来自分类Dev

使用LINQ将数据从一个表复制到另一台服务器上的另一个表?

来自分类Dev

如何使用一个站点的登录信息来登录另一台服务器上的另一个站点

来自分类Dev

如何将动作转发到Rails中的另一个控制器?

来自分类Dev

从Ruby on Rails 4中的另一个控制器渲染表单

来自分类Dev

如何使资源重定向到Rails中的另一个控制器

来自分类Dev

在保存rails 4之前在另一个控制器中调用对象

来自分类Dev

将对象传递到Rails中的另一个控制器

来自分类Dev

在另一个控制器中时,rails路由无法按预期工作

来自分类Dev

从Rails中的另一个控制器访问数据

来自分类Dev

Rails:基于另一个模型的控制器中的参数创建新模型

来自分类Dev

将对象传递到Rails中的另一个控制器

来自分类Dev

从Rails中的另一个控制器调用方法

来自分类Dev

如何从 Rails 中的另一个控制器获取帖子的 ID?

来自分类Dev

如何在使用AJAX和PHP的在线服务器中启用CORS以获取在另一个BigCartel网站上使用的字体

Related 相关文章

  1. 1

    Rails服务器在另一个文件夹中启动应用程序

  2. 2

    Rails服务器在另一个文件夹中启动应用程序

  3. 3

    在另一个Rails应用程序中使用一个Rails应用程序的Elasticsearch服务器

  4. 4

    “ Rails服务器”创建一个名为“ server”的新应用,但不启动Rails服务器

  5. 5

    如何使用PHP与服务器中的另一个应用程序一起使用?

  6. 6

    强制图像使用另一个域(位于同一服务器中)

  7. 7

    我想在 react js 中的另一个文件上使用类组件但没有服务器?

  8. 8

    无法使用AWS无服务器脱机从另一个Lambda调用Lambda

  9. 9

    如何使用grunt服务器请求另一个端口?

  10. 10

    Xampp本地主机已加载,但XAMPP的Apache无法启动,而另一个Web服务器正在OSX 10.8.4上使用端口80

  11. 11

    在另一个Rails中使用控制器中的方法

  12. 12

    使用内置服务器将一个php文件链接到另一个

  13. 13

    使用VirtualBox从另一个VM访问来自一个VM的本地http服务器

  14. 14

    在Rails中访问另一个控制器中的一个控制器变量

  15. 15

    使用相同的权限和相同的目录,可以访问我的apache服务器中的pdf文件之一,而另一个则无法访问

  16. 16

    使用LINQ将数据从一个表复制到另一台服务器上的另一个表?

  17. 17

    如何使用一个站点的登录信息来登录另一台服务器上的另一个站点

  18. 18

    如何将动作转发到Rails中的另一个控制器?

  19. 19

    从Ruby on Rails 4中的另一个控制器渲染表单

  20. 20

    如何使资源重定向到Rails中的另一个控制器

  21. 21

    在保存rails 4之前在另一个控制器中调用对象

  22. 22

    将对象传递到Rails中的另一个控制器

  23. 23

    在另一个控制器中时,rails路由无法按预期工作

  24. 24

    从Rails中的另一个控制器访问数据

  25. 25

    Rails:基于另一个模型的控制器中的参数创建新模型

  26. 26

    将对象传递到Rails中的另一个控制器

  27. 27

    从Rails中的另一个控制器调用方法

  28. 28

    如何从 Rails 中的另一个控制器获取帖子的 ID?

  29. 29

    如何在使用AJAX和PHP的在线服务器中启用CORS以获取在另一个BigCartel网站上使用的字体

热门标签

归档