ruby ruby-on-rails-4 ssh rails-console

ruby - La consola Rails no funciona en el servidor



ruby-on-rails-4 ssh (4)

Estoy usando capistrano para implementar, incluida la joya capistrano / bundler. Como el directorio ./ bin está controlado por la versión en Rails 4, debemos evitar que Capistrano lo vincule en las implementaciones eliminando bin de set :linked_dirs .

Ahora, para evitar que bundler sobrescriba los binstubs controlados por la versión, podemos agregar el set :bundle_binstubs, nil líneas set :bundle_binstubs, nil que evitará que capistrano-bundler configure la opción --binstubs cuando ejecute bundle install.

Mi archivo config / deploy.rb ahora tiene estas líneas:

# Default value for linked_dirs is [] set :linked_dirs, fetch(:linked_dirs, []).push(''log'', ''tmp/pids'', ''tmp/cache'', ''tmp/sockets'', ''vendor/bundle'', ''public/system'') set :bundle_binstubs, nil

Tenga en cuenta la falta del directorio bin en la línea :linked_dirs .

Cuando ejecuto bundle exec rails console production o rails console production través de SSH en el servidor en la carpeta Current del despliegue de Capistrano, obtengo:

Usage: rails new APP_PATH [options] Options: (...)

con una explicación para comenzar una nueva aplicación. Localmente funciona. ¿Por qué no puedo iniciar una consola de forma remota?


Ha pasado un tiempo desde que esto fue respondido.

En mi caso, necesitaba ejecutar:

rake app:update:bin

Nota: aplicación en lugar de raíles.

Me faltaba el directorio bin todo junto en mi aplicación Rails 5.1


Supongo que actualizaste a rails 4 desde la versión 3 y tu aplicación no puede encontrar los ejecutables en el directorio bin . Ejecuta esto para ver tu versión de rieles:

$ rails -v

Si la versión de su rails es 4 o superior, intente ejecutar esto:

$ rake rails:update:bin

Fuente: Notas de la versión de Rails 4

6.1 Cambios notables

  • Los ejecutables de su aplicación ahora viven en bin/ dir. Ejecutar rake rails:update:bin para obtener bin/bundle , bin/rails , y bin/rake .

Tengo el mismo problema, y ​​resulta que cuando despliegas a través de cap shared/bin es symlink a current/bin .

Esto es lo que funciona para mí:

  • rm current/bin
  • mkdir current/bin
  • rake rails:update:bin

Esto debería ayudar, pero de alguna manera es una solución temporal, estoy tratando de descubrir cómo hacer que el cap no sea un enlace simbólico actual / bin.