做了一个简单的rails测试应用,ruby script/srever启动之后,第一次访问结果正常,再次刷新就出现model无法找到的name error,请各位大侠指导。谢谢!
错误信息如下:其中Event是我的model class name
NameError in AdminController#index
uninitialized constant AdminController::Event
RAILS_ROOT: /home/iease/iease
Application Trace | Framework Trace | Full Trace
/usr/lib/ruby/gems/1.8/gems/activesupport-2.1.0/lib/active_support/dependencies.rb:492:in const_missing'
index'
app/controllers/admin_controller.rb:3:in
版本是2.1.0
[b]问题补充:[/b]
admin controller代码如下:
class AdminController < ApplicationController
def index
@rec = Event.find(10)
end
end
[b]问题补充:[/b]
比较奇怪的是我每次重启webrick之后,第一次访问都是正常的,但是之后就出现问题。不太理解这个原因。
[b]问题补充:[/b]
使用./script/console测试没有问题,多次调用Event.find****都是正常的。
[b]问题补充:[/b]
admin/index.rhtml:
Hello world
[b][color=red]uninitialized constant AdminController::Event [/color][/b]
你哪里来的这个变量呢?
把你的/admin_controller.rb中的index方法亮出来看一下.
看看 app/models/event.rb 中是否有语法错误,重启 script/server 试试。
很显然 Event 是个 Model 类,出问题的时候出于某个原因这个类未定义,因此 Rails 未在任何可用的 namespace 里搜索到 Event 这个常量类名,所以出现在当前 namespace AdminController 下的 Event 常量未定义的错误。
除了我上面说到的检查之外,到 ./script/console 里试试这个问题是否存在。
看一下你的admin/index页面,一定有问题