Rails命令错误

我即将开始在另一个Web应用程序上工作,我将目录更改为

/ rails_projects

并输入

铁路新空白

然后我得到这个错误

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

轨道

在cmd

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

 rake rails:update:bin 

这将生成二进制文件的“新”版本。 当它询问你要更换它们时,请说“ Yes

尝试将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中第一个出现错误消息的链接。 只是传递我的发现,以帮助遇到同样情况的其他人。

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

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

我最终卸载了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 

对于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 

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

 ruby setup.rb gem update --system 2.1.9 

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

 gem install rails --version 4.0.2 gem install railties 

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

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

当加载时在gem(依赖项)中发生require错误时,这发生在我身上。