当我们调用这个命令时rails runner test.rb -e production
,我们会看到这个错误:
test.rb:2:in `<top (required)>': undefined local variable or method `hello' for main:Object (NameError)
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/commands/runner.rb:51:in `eval'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/commands/runner.rb:51:in `<top (required)>'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/commands.rb:64:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/railties-3.2.12/lib/rails/commands.rb:64:in `<top (required)>'
from script/rails:6:in `require'
from script/rails:6:in `<main>'
test.rb 的内容:
hello
def hello
puts "hi"
end
为什么会这样?我们在 Rails 3.2.12 上。