我创建了一个RoR应用程序。
但是当我添加名为队列的新模型时,会出现以下错误:
ActionView::Template::Error (undefined method `arel_table' for Queue:Class):
队列是rails还是ruby的保留字?怎么了?
提前致谢。
答案 0 :(得分:1)
这不是保留字,但已经有一个具有该名称的类:http://www.ruby-doc.org/stdlib-2.0/libdoc/thread/rdoc/Queue.html。这意味着当您调用Queue时,不会触发rails constant_missing
方法,并且您的新类未被加载。
有两种解决方案。第一个很明显,重命名你的班级。第二个是删除以前的定义:
Object.send(:remove_const, :Queue)
在你的一个启动器中。但请注意,如果您决定使用原始队列,这可能会在以后产生误导,如果您当前正在使用它,则完全不在桌面上。