tutorial rails generate español ejemplos ruby-on-rails ruby-on-rails-3 ruby-on-rails-4 backticks

ruby on rails - generate - Inicie otro servidor de Rails desde la aplicación Rails con patillas.



ruby on rails ejemplos (2)

¡Tienes razón, Mike!

Voy a decir simplemente configurar el puerto:

bundle exec rails s -p 3001

bundle exec rails s -p 3000

para dos instancias de servidor diferentes!

¡Aclamaciones!

Actualmente estoy trabajando en una aplicación de Rails que sirve como un actualizador para otra aplicación de Rails.

Tengo el proceso de actualización funcionando,

  • Descargar nuevo lanzamiento zip
  • Extraer a la ubicación correcta
  • Sincronizar activos
  • Paquete de instalación
  • Precompilar los activos
  • Inicie el servidor con - bundle exec rails server

Tengo un problema con el último paso.

Cuando corro:

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

de la aplicación de actualización parece estar extrayendo del paquete de actualizadores y no del nuevo paquete de aplicaciones del que debería extraerse.

El actualizador está escrito en Rails 4 y la aplicación que está actualizando es rails 3.

Cuando intento iniciar el servidor obtengo lo siguiente:

/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>''

De esta salida puedo decir que está tratando de usar la versión incorrecta de las vulnerabilidades ...

Cuando manualmente cd ../other-project y bundle exec rails server -d -p 3000 funciona bien.

¿Hay algún truco de bash que pueda usar para evitar esto? La caja base es Ubuntu 14.04

¡Gracias!


Muy bien, pasé la mañana solucionando problemas esto y encontré una solución!

Todo lo que tiene que hacer es establecer la variable de entorno BUNDLE_GEMFILE antes de:

bundle exec rails server -d -p 3000

Parece que Bundler necesita un poco de ayuda para encontrar los archivos Gemfile, ya que estoy tratando de iniciar otra aplicación dentro del paquete actual, esta es la clase que creé para controlar la aplicación que este actualizador será responsable de actualizar.

¡Estoy feliz de decir que el método de inicio finalmente funciona como se esperaba!

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