Ruby Rails控制台在服务器上不工作

Ruby Rails控制台在服务器上不工作,ruby,ruby-on-rails-4,ssh,rails-console,Ruby,Ruby On Rails 4,Ssh,Rails Console,当我通过SSH在Capistrano deploy的Current文件夹中的服务器上运行bundle exec rails console production或rails console production时,我得到: Usage: rails new APP_PATH [options] Options: (...) 并附有启动新应用程序的说明。在本地,它是有效的。为什么我不能远程启动控制台?我假设您从版本3更新到rails 4,并且您的应用程序在bin目录中找不到可

当我通过SSH在Capistrano deploy的
Current
文件夹中的服务器上运行
bundle exec rails console production
rails console production
时,我得到:

Usage:
     rails new APP_PATH [options]

Options:
    (...)

并附有启动新应用程序的说明。在本地,它是有效的。为什么我不能远程启动控制台?

我假设您从版本3更新到
rails 4
,并且您的应用程序在
bin
目录中找不到可执行文件。运行此命令以查看您的rails版本:

$ rails -v
如果您的
rails
版本为4或更高,请尝试运行以下命令:

$ rake rails:update:bin

资料来源:

6.1显著变化
  • 您的应用程序的可执行文件现在位于
    bin/
    目录中。运行
    rake rails:update:bin
    以获取
    bin/bundle
    bin/rails
    bin/rake

我也有同样的问题,当您通过cap
shared/bin
部署时,它是指向
current/bin
的符号链接

以下是对我有效的方法:

  • rm当前/bin
  • mkdir当前/bin
  • rake导轨:更新:bin

这应该会有所帮助,但这是一个临时解决方案,我正在尝试找出如何使cap不自动符号链接为当前/bin。

我正在使用capistrano进行部署,包括capistrano/bundler gem。由于.bin目录在Rails 4中受版本控制,我们需要通过从
集合:linked_dirs
中删除bin来防止Capistrano在部署时链接它

现在为了防止bundler覆盖版本控制的binstubs,我们可以添加行
set:bundle\u binstubs,nil
,这将防止capistrano bundler在运行bundle安装时设置--binstubs选项

我的config/deploy.rb文件现在有以下几行:

# 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

请注意
:linked_dirs
行中缺少
bin
目录。

这一问题已经有一段时间没有得到回答了

在我的情况下,我需要运行:

rake app:update:bin
注意-应用程序而不是rails


在Rails 5.2的情况下,我在Rails 5.1应用程序中丢失了bin目录

我必须通过在项目根目录中运行下面的命令来删除bin目录

 rm -rf bin
然后我在项目根目录中运行了另一个命令:

 rake app:update:bin
它将显示如下输出:

  create  bin
  create  bin/bundle
  create  bin/rails
  create  bin/rake
  create  bin/setup
  create  bin/update
  create  bin/yarn

就这样。

这行吗
RAILS\u ENV=production bundle exec RAILS console
@Eugene我得到与上面相同的消息。不知道为什么,安装了rails和ruby。是否加载了环境?rvm gemset或rbenv或elseI启动了正在运行的(精简)服务器。如何加载环境
rvmgemset
给出了
未知子命令“”
。我没有更新Rails。这是一个干净的安装。无论如何,我都会尝试运行该命令。这对我很有帮助。非常感谢。“bundle exec rake rails:update:bin”对我有效,然后“bundle exec rails c”我尝试了这个解决方案,但得到了以下错误:“没有找到Rakefile(查找:Rakefile,Rakefile,Rakefile.rb,Rakefile.rb)”。我不熟悉ruby和rake。知道发生了什么吗?