我有一个网络应用程序,希望跟踪/编写来自不同州立法机构的账单。然而,我发现的问题是,许多州对票据架构,进展规则有不同的规定(即某些州允许您重新考虑失败的票据,而其他州则不然),等等。
我现在在模型中处理它的方法是创建一个Bill
类,然后有条件地重新打开该类,并根据环境变量向该类添加其他字段和验证。目的是让每个州都有自己的应用程序安装,因此我会将STATE
设置为OR
并使应用程序使用俄勒冈州法案规则。
然而,这对我来说已成为一个巨大的问题。重新打开这样的类在生产中运行得很好,但是它变得非常难以测试,因为类需要在启动时打开并且不能被禁用以进行测试,除非我以某种方式使用不同的环境变量重新加载整个程序。我搜索了Google和StackOverflow,但是我没有得到任何关于我正在寻找的最佳实践的结果,要么是因为它们不存在,要么我不知道它的名称。
答案 0 :(得分:1)
既然你在询问环境变量,为什么不使用环境变量?
ENV
可以做到这一点,只需在那里添加适当的状态。
>> ENV['State_Code'] = 'FL'
=> "FL"
>> ENV['State_Code']
=> "FL"
更改它,因为您想测试不同的规则。
这样做的好处是可以从应用程序外部进行设置,因为从您的环境中读取ENV
并不奇怪。