我即将开始使用其他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
答案 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错误时,会发生这种情况。