我创建了ruby类并将其放在app_dir / lib / appointment_messaging_job.rb
class AppointmentMessagingJob
def perform
end
end
在我的一个控制器中,我这样做:
test = AppointmentMessagingJob.new
我得到一个非常烦人的非常难以理解的错误:
Started GET "/en/appointments/1/approve" for 127.0.0.1 at 2012-09-04 13:02:43 -0400
Processing by AppointmentsController#approve as HTML
Parameters: {"locale"=>"en", "id"=>"1"}
Completed 500 Internal Server Error in 2ms
NameError (uninitialized constant AppointmentsController::AppointmentMessagingJob):
app/controllers/appointments_controller.rb:89:in 'approve'
这个未初始化的常数是什么?我真的不明白。
答案 0 :(得分:4)
您的图书馆未加载,而且无法解析班级名称。
更新config/application.rb
以自动包含lib
目录;那里有一行默认注释掉:
# Custom directories with classes and modules you want to be autoloadable.
# config.autoload_paths += %W(#{config.root}/extras)
(您显然想要包含lib
目录,而不是extras
。)
IIRC您也可以在控制器中使用require 'test_class'
,lib目录位于库路径上。这使得依赖性更加明确,但我不确定它是否更具沟通性。