如何在开发模式下检测Active Record的名称冲突错误



我这样定义enum

enum order_quota: {plenty: 0, limited: 1, none: 2}

然后我犯了这个错误。

ArgumentError:您试图在模型"Product"上定义一个名为"order_quota"的枚举,但这将生成一个类方法"none",该方法已由Active Record定义。

我知道这个错误是由与Active Record类方法的名称冲突引起的。

问题是只有在生产模式下才会出现错误。我应该更改哪个配置来检测开发模式中的错误?

测试这个枚举所要做的就是引用类,以便对其进行求值。如果没有自动化测试,生产中就会出现问题。这就像死亡和税收一样恒定。

require 'test_helper'
class ProductTest < ActiveSupport::TestCase
test "it does not blow up" 
Product
assert true
end
end

在生产而非开发中启动时出现错误的原因是config.eager_load设置在启动时加载所有模型。不,你不想在开发中设置为true来捕捉这个错误,因为它会扰乱代码的重新加载。

相关内容

最新更新