NameError:未定义的局部变量或irb中的方法

时间:2013-05-12 00:53:24

标签: ruby terminal arguments irb nameerror

我正在使用带有irb的ruby 1.9.2并且我不断收到以下错误消息:

NameError: undefined local variable or method `ex1' for main:Object
from (irb):4
from /Users/flexmaster411/.rvm/rubies/ruby-1.9.2-p320/bin/irb:16:in `<main>' 

我也尝试拖放到irb然后我得到另一个参数错误代码。

Rodas-MacBook-Air:~ flexmaster411$ pwd /Users/flexmaster411
Rodas-MacBook-Air:~ flexmaster411$ cd Desktop
Rodas-MacBook-Air:Desktop flexmaster411$ cd my
Rodas-MacBook-Air:my flexmaster411$ ls
ex1.rb ex2.rb   test.html   test.rb  wacky.rb
Rodas-MacBook-Air:my flexmaster411$ irb
1.9.2-p320 :001 > ruby ex1.rb
NameError: undefined local variable or method ex1' for main:Object from (irb):1 from /Users/flexmaster411/.rvm/rubies/ruby-1.9.2-p320/bin/irb:16:in <main>' 

1 个答案:

答案 0 :(得分:3)

所以你要做的是:

$ irb
001 > ruby ex1.rb

ruby命令本身就是一个程序,所以你应该直接从命令行使用ruby,如下所示:

$ ruby ex1.rb

这意味着“Ruby,请执行此文件”,而irbREPL,直接等待Ruby语句。这意味着您可以将Ruby代码直接输入到irb中,如下所示:

$ irb
001 > puts "Hello, world!"
Hello, world!

或者你可以进入irb并加载文件的内容然后试验代码:

$ irb
001 > require './ex1'