【问题标题】:Rails console not working on serverRails 控制台无法在服务器上运行
【发布时间】:2014-10-31 21:34:12
【问题描述】:

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

Usage:
     rails new APP_PATH [options]

Options:
    (...)

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

【问题讨论】:

  • 这行得通吗? RAILS_ENV=production bundle exec rails console
  • @Eugene 我收到与上面相同的消息。不知道为什么,安装了 rails 和 ruby​​。
  • 你加载你的环境了吗? rvm gemset 或 rbenv 或其他
  • 我启动了正在运行的(瘦)服务器。如何加载环境? rvm gemsetUnknown subcommand ' '

标签: ruby ruby-on-rails-4 ssh rails-console


【解决方案1】:

我假设您从版本 3 更新到 rails 4,并且您的应用无法在 bin 目录中找到可执行文件。运行这个来查看你的 rails 版本:

$ rails -v

如果您的rails 版本是4 或更高版本,请尝试运行:

$ rake rails:update:bin

来源:Rails 4 Release Notes

6.1 显着变化

  • 您的应用程序的可执行文件现在位于bin/ 目录中。运行rake rails:update:bin 以获取bin/bundlebin/railsbin/rake

【讨论】:

  • 我没有更新 Rails。这是一个干净的安装。无论如何我都会尝试运行该命令。
  • 这对我有帮助。非常感谢。
  • "bundle exec rake rails:update:bin" 为我工作,然后 "bundle exec rails c"
  • 我尝试了此解决方案,但出现以下错误:“未找到 Rakefile(正在查找:rakefile、Rakefile、rakefile.rb、Rakefile.rb)”。我是红宝石和耙子的新手。知道发生了什么吗?
  • 我不得不将命令稍微更改为bundle exec rake app:update:bin
【解决方案2】:

我有同样的问题,当你通过 cap shared/bin 进行部署时,我发现它是指向current/bin 的符号链接。

这对我有用:

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

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

【讨论】:

    【解决方案3】:

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

    现在为了防止 bundler 覆盖版本控制的 binstubs,我们可以添加行 set :bundle_binstubs, nil 这将防止 capistrano-bundler 在运行 bundle install 时设置 --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 目录。

    【讨论】:

      【解决方案4】:

      这个问题已经有一段时间没有回答了。

      就我而言,我需要运行:

      rake app:update:bin
      

      Note- app 而不是 rails。

      我的 Rails 5.1 应用程序中的 bin 目录全部丢失

      【讨论】:

      • 是的,bundle exec rake app:update:bin 成功。
      【解决方案5】:

      如果是 Rails 5.2

      我必须通过在项目根目录中运行以下命令来删除 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
      

      就是这样。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多