【问题标题】:Rails server won't take command-line argumentsRails 服务器不会接受命令行参数
【发布时间】:2013-12-17 15:25:33
【问题描述】:

我正在尝试在 Debian 7.3(Ruby 1.9.3p194,Rails 2.3.14)上运行 Ruby/Rails 教程,但我似乎无法让服务器以任何命令行参数启动。作为 root,我在 /root 中创建了一个 rails 骨架目录,其中

# rails -d postgresql demo/inventory

我可以通过执行脚本/服务器在默认端口 3000 上启动服务器,但是给出命令行参数的任意组合(例如,-d 表示守护程序模式,-p 80 表示在端口 80 上运行)会给出错误:

/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- rack/handler/-p (LoadError)

/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- rack/handler/-d (LoadError)

任何命令行参数都被同样处理。最后的致命错误之前是一堆警告(即使我在没有参数的情况下成功地在端口 3000 上启动了服务器):

NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01.
Gem.source_index called from /root/demo/inventory/vendor/rails/railties/lib/rails/gem_dependency.rb:21.
NOTE: Gem::SourceIndex#initialize is deprecated with no replacement. It will be removed on or after 2011-11-01.
Gem::SourceIndex#initialize called from /root/demo/inventory/vendor/rails/railties/lib/rails/vendor_gem_source_index.rb:100.
NOTE: Gem::SourceIndex#add_spec is deprecated, use Specification.add_spec. It will be removed on or after 2011-11-01.

最后一个警告重复了几次。我觉得我缺少一些包或宝石,但我不知道从哪里开始。

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-2


    【解决方案1】:

    首先,有点跑题了,如果你开始一个新的 Rails 项目,你可能应该使用更高版本的 ruby​​ 和 rails。

    rails server -p 4567 是您在启动服务器时要查找的命令。我猜你是在传递标志,但没有表明你想让 Rails 启动服务器。

    【讨论】:

    • 移除导轨 2 并安装导轨 3 似乎已经解决了问题。语法似乎不同;而 rails 2 期望我执行脚本/服务器(并且不会接受任何参数),运行 rails server -p 80 -d 似乎在 rails 3 中工作。我确实必须从 Debian backports 安装 node.js 来解决"/var/lib/gems/1.9.1/gems/execjs-2.0.2/lib/execjs/runtimes.rb:51:in `autodetect': 找不到 JavaScript 运行时。请参阅 github.com/sstephenson/execjs 以获取可用的运行时。(ExecJS::RuntimeUnavailable)”错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-01
    • 2013-11-24
    • 2013-03-15
    • 2021-11-08
    • 2017-07-19
    相关资源
    最近更新 更多