Rails дает NameError для всех методов командной строки, таких как generate или rake - PullRequest
1 голос
/ 09 декабря 2010

Я новичок в Rails, и я пытался выяснить, что в мире идет не так, как надо, последние несколько дней, но безуспешно.Я искал везде, но ничего не нашел.По сути, когда я запускаю какой-либо метод командной строки, я получаю NameError.Я попытался запустить это в разных каталогах проектов, которые работали.Кажется, что rails просто сломан ...

Я использую Win7-32bit, используя NetBeans 6.9.1 для редактирования файлов и cmd.exe для запуска консоли 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>' 

рельсы генерируют миграцию:

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>' 

rake db: migrate:

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>' 

Любая помощь будет ОЧЕНЬ признательна.Спасибо!

Ответы [ 3 ]

5 голосов
/ 09 декабря 2010

Эти команды не работают изнутри irb, их нужно запускать напрямую из cmd.exe.

1 голос
/ 09 декабря 2010

Я бы взял на себя инициативу разработки ответа @ dhofset. В основном мы используем команды, относящиеся к rails app, непосредственно в консоли, а не в консоли irb. Даже я работаю на 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

Надеюсь, у вас теперь лучшее понимание.

0 голосов
/ 09 декабря 2010

Да, dhofstet имеет право: это все команды для приглашения Windows, они , а не операторы ruby.

...