我有两个文件:urls.rb
和testcase.rb
。 urls.rb
具有以下特点:
$event = "/sendmessage/#{id}"
URL中的id
在testcase.rb
中生成。这是testcase.rb
中的代码:
require 'urls.rb'
id = 100
puts $event
我看到以下错误:
undefined local variable or method `id' for main:Object (NameError)
如何解决此错误?
答案 0 :(得分:1)
问题是您试图在id
定义之前在urls.rb
中使用testcase.rb
。您的代码在功能上等效于以下内容:
$event = "/sendmessage/#{id}"
id = 100
puts $event
这不起作用,因为您试图在定义之前调用id
。您必须先定义变量:
id = 100
$event = "/sendmessage/#{id}"
puts $event
它在这里起作用,因为您已经定义了id
,然后再尝试调用它。
在解决此类问题时,请考虑如果不将其分为不同的文件,它将如何工作。
因此,在不了解您要完成的操作的更多信息之前,只需确保在尝试调用它之前定义了一个 变量即可。
答案 1 :(得分:1)
不能在文件之间调用id
之类的局部变量。它们的范围限制在一个文件中。为了使用它,必须在使用的文件中分配id
。此外,在要求id
之后分配'urls.rb'
是没有意义的。