2015-01-04 83 views
-2

我试图编程ruby时出错。 错误:C:/用户/ PC华硕/桌面/ g.rb:3:<main>': undefined local variable or method 'y' for main:Object (NameError)红宝石错误:未定义的本地变量或方法

这里是我的代码:

puts " Do you like to install hacking pack?" 
insta_one = gets.chomp 

if insta_one == y 
make 
else 
puts "Ok. Bye!" 
end 

def make 
awe = file.new("shell.bat","w") 
readme.puts("@echo off") 
readme.puts("color a") 
readme.puts("echo Installing hacking pack") 
readme.puts("Thanks for downloading rootShell!") 
readme.puts("My email - [email protected]") 
end 
+1

你比较''ìnsta_one'''到unexistant'' 'y'''变量。你想要的是:'''如果insta_one =='y'''''。 – romainsalles 2015-01-04 12:22:23

回答

0

之前,你可以使用一个方法,你需要定义它。在你的代码,make是之后定义您尝试调用它,所以红宝石是不熟悉它,并抛出一个错误:

def make 
    File.open("shell.bat", 'w') do |readme| 
    readme.puts("@echo off") 
    readme.puts("color a") 
    readme.puts("echo Installing hacking pack") 
    readme.puts("Thanks for downloading rootShell!") 
    readme.puts("My email - [email protected]") 
    end 
end 

puts " Do you like to install hacking pack?" 
insta_one = gets.chomp 

if insta_one == 'y' 
    make 
else 
    puts "Ok. Bye!" 
end 
1

y不是字符串,但未定义的变量。

请更改线路3:

if insta_one == 'y' 
+0

谢谢,但现在它给了我一个错误,'make'是undefined – 2015-01-04 12:58:30

+0

'make'是方法。定义调用函数之前的方法。在'make'方法中,请将'file.new(...'更改为'File.new(...'。因为'File'是类,所以应该使用调用类方法的大写。 – itochan 2015-01-04 13:16:29

+0

它仍然给我错误 – 2015-01-04 13:31:20

相关问题