【问题标题】:uninitialized constant when trying to use a custom class in Rails test尝试在 Rails 测试中使用自定义类时未初始化的常量
【发布时间】:2018-01-29 20:07:19
【问题描述】:

在 Rails 5.1 上,我有这个模块:

app/datatables/financing/merchants_datatable.rb

在我的 Mercers_controller.rb 文件中,我有这个代码:

def index
    ...
    respond_to do |format|
        format.html
        format.json { render json: Datatables::Financing::MerchantsDatatable.new(view_context) }
    end
end

当我尝试运行我的 test/controllers/merchants_controller_test.rb 时,我遇到了这个错误:

NameError: uninitialized constant Financing::MerchantsController::Datatables

如何在我的测试中加载我的 Mercers_datatable.rb 模块?

谢谢!

【问题讨论】:

  • 我猜你在spec_helper 中有这一行? Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f }。你的文件夹结构是什么样的?我现在可以告诉你,错误中的路径与文件夹结构或render json: ... 行不匹配。

标签: ruby-on-rails ruby testing minitest


【解决方案1】:

Ruby 似乎对您的模块结构感到困惑。改变

format.json { render json: Datatables::Financing::MerchantsDatatable.new(view_context) }

format.json { render json: ::Datatables::Financing::MerchantsDatatable.new(view_context) }

告诉 Ruby 不要开始在 Financing::MerchantsController 命名空间内搜索 Datatables

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 2011-10-19
    • 1970-01-01
    相关资源
    最近更新 更多