2014-01-13 80 views
1

我在,进出口使用一个名为“DataTableDelegate”类,这是在叫一个单独的文件我“ProgramsController.rb”文件如下代码:“datatable_delegate.rb”NameError - 在轨未初始化的恒定误差4

# GET /programs 
# GET /programs.json 
def index 
    puts "Running Program/index" 
puts "Model name = #{controller_name.classify}" 
respond_to do |format| 
    format.html 
@datatable_options = generate_datatable_hash(view_context, controller_name.classify, Program.data_table_attribute_array) 
log_with_blue("============================================") 
log_with_yellow("#{@datatable_options.inspect}") 
log_with_blue("============================================") 
>>>>>> format.json { render json: DataTableDelegate.new(@datatable_options) } 
    end 
    end 

“datatable_delegate.rb”位于

app/datatables/datatable_delegate.rb 

当我加载在浏览器中,我得到在我的日志以下程序URL中的文件:

完成500 237ms

NameError - uninitialized constant ProgramsController::DataTableDelegate: 
activesupport (4.0.0) lib/active_support/dependencies.rb:500:in `load_missing_constant' 
activesupport (4.0.0) lib/active_support/dependencies.rb:183:in `const_missing' 
app/controllers/programs_controller.rb:22:in `block (2 levels) in index' 
actionpack (4.0.0) lib/action_controller/metal/mime_responds.rb:191:in `respond_to' 
app/controllers/programs_controller.rb:13:in `index' 
actionpack (4.0.0) lib/action_controller/metal/implicit_render.rb:4:in `send_action' 
actionpack (4.0.0) lib/abstract_controller/base.rb:189:in `process_action' 
...... 

我试图把一个需要声明,我的程序控制器文件,但我仍然正在错误.....

我应该怎么办?

谢谢

回答

0

将文件重命名为'data_table_delegate.rb'。另请检查路径app/datatables是否在您的autoload_paths中。

2

您的ProgramsController中不需要require语句,因为app/目录中的所有文件都是由Rails自动加载的。

问题是您访问DataTableDelegate的方式。它的命名空间为Datatable,因此该文件的放置位于app/datatables/目录中。

尝试用以下:

::Datatable::DatatableDelegate.new(@datatable_options) 

请注意上面的模块中的人物和类名的情况。

相关问题