2

我是 Rails 的初学者,过去几天我一直试图找出世界上哪里出了问题,但绝对没有运气。我到处寻找,但一无所获。基本上,当我运行任何类型的命令行方法时,我都会得到一个 NameError。我已经尝试在不同的项目目录中运行它,以及曾经工作的。看来铁轨刚刚坏了……

我正在使用 NetBeans 6.9.1 运行 Win7-32​​bit 来编辑文件,并使用 cmd.exe 来运行 rails 控制台。

一切都正常工作了大约两个星期,然后突然发生了这种情况。这里有一些例子:

rails 生成模型:

irb(main):004:0> rails generate model datatest  
NameError: undefined local variable or method `datatest' for main:Object  
from (irb):4  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:44:in `start'  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:8:in `start'  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:23:in `<top (required)>'  
from script/rails:6:in `require'  
from script/rails:6:in `<main>' 

rails 生成迁移:

irb(main):003:0> rails generate migration rename_password_to_hashed_password  
NameError: undefined local variable or method `rename_password_to_hashed_password' for main:Object  
from (irb):3  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:44:in `start'  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:8:in `start'  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:23:in `<top (required)>'  
from script/rails:6:in `require'  
from script/rails:6:in `<main>' 

耙分贝:迁移:

irb(main):005:0> rake db:migrate  
NameError: undefined local variable or method `migrate' for main:Object  
from (irb):5  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:44:in `start'  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands/console.rb:8:in `start'  
from C:/Ruby192/lib/ruby/gems/1.9.1/gems/railties-3.0.3/lib/rails/commands.rb:23:in `<top (required)>'  
from script/rails:6:in `require'  
from script/rails:6:in `<main>' 

任何形式的帮助将不胜感激。谢谢!

4

3 回答 3

5

这些命令在 irb 中不起作用,您必须直接从 cmd.exe 启动它们。

于 2010-12-09T06:11:49.597 回答
1

我会主动详细说明@dhofset 的答案。基本上我们直接在控制台而不是在 irb 控制台中使用 rails app 相关的命令。即使我在 Windows 上工作,所以我给你举几个例子

这是你做的

1. Create new App
C:\Users\rohit>rails new_app

2. Generate a scaffold
C:\Users\rohit\new_app>ruby script\generate scaffold User name:string

3. Generate a model
C:\Users\rohit\new_app>ruby script\generate model User name:string

4. To run a rake task
C:\Users\rohit\new_app>rake db:create
C:\Users\rohit\new_app>rake db:migrate

希望你现在有更好的理解。

于 2010-12-09T07:34:45.060 回答
0

是的,dhofstet 说得对:这些都是 windows 提示符的命令,它们不是ruby​​ 语句。

于 2010-12-09T06:17:56.317 回答