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错误时,这发生在我身上。