Rails命令错误

时间:2014-02-06 16:39:29

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

我即将开始使用其他Web应用程序,我将目录更改为

  

/ rails_projects

并输入

  

rails new blank

然后我收到此错误

Error: Command not recognized
Usage: rails COMMAND [ARGS]

The common rails commands available for engines are:
 generate    Generate new code (short-cut alias: "g")
 destroy     Undo code generated with "generate" (short-cut alias: "d")

All commands can be run with -h for more information.

If you want to run any commands that need to be run in context
of the application, like `rails server` or `rails console`,
you should do it from application's directory (typically test/dummy).

我已经重新安装了rails,还有同样的错误,有什么想法吗?

更新:

当我输入

时,它实际上给了我同样的错误
  

rails -h

     

in cmd

6 个答案:

答案 0 :(得分:5)

对于任何有类似错误的人来说,这可以解决这个问题:

rake rails:update:bin

这将生成" new"二进制文件的版本。当它询问你要替换它们时,只需说Yes

答案 1 :(得分:2)

尝试将Rails引擎从3.2升级到4.1时遇到了类似的问题。

罪魁祸首是script/rails的存在,其中包含:

#!/usr/bin/env ruby
# This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.

ENGINE_ROOT = File.expand_path('../..', __FILE__)
ENGINE_PATH = File.expand_path('../../lib/my_project/engine', __FILE__)

require 'rails/all'
require 'rails/engine/commands'

问题在最后:require 'rails/engine/commands。这不允许加载完整的Rails CLI,省略了new命令。删除该文件解决了我的问题。

我很确定这不是您特定问题的原因,但症状与我的相同,这是Google中第一个出现错误消息的链接。只是传递我的发现,以帮助遇到同样情况的其他人。

答案 2 :(得分:1)

看起来rails命令认为它在rails引擎内,这就是为什么你可以使用不同的命令集。请注意“可用于引擎的命令”文本。 New不是可用于引擎的命令。我不确定为什么rails认为你所在的目录是一个引擎,但你的目录结构可能会以某种方式混淆。

答案 3 :(得分:1)

如果有人遇到此错误并需要最后的计划。

我最终卸载了rails,rvm,并安装了更新版本的ruby和new gemset。

rvm implode
gem uninstall rails -v=4.0.2
gem uninstall railities

安装rvm:

curl -L https://get.rvm.io | bash -s
rvm get stable

for mac:

brew install libtool libxslt libksba openssl
brew install libyaml

安装ruby:

rvm install 2.0.0 --with-openssl-dir=$HOME/.rvm/usr

如果您有错误

rvm install 2.0.0 --with-openssl-dir=$HOME/.rvm/opt/openssl

从网站安装新的红宝石宝石。解包然后转到文件夹并运行

ruby setup.rb
gem update --system 2.1.9

安装rails(您可以选择您的版本)

gem install rails --version 4.0.2
gem install railties

我这样做了,现在系统再次正常工作。

答案 4 :(得分:0)

创建另一个目录并运行$ruby -v,检查哪个版本可用。现在运行rails new app_name。关闭终端并重新启动后尝试一次。

答案 5 :(得分:0)

当加载时gem(依赖项)中发生require错误时,会发生这种情况。