0

我有一个网络应用程序,希望跟踪/编写来自不同州立法机构的账单。不过,我发现的问题是,许多州对法案模式、进展规则有不同的规则(即,有些州允许您重新考虑失败的法案,而其他州则不允许)等等。

我现在在模型中处理它的方式是创建一个Bill类,然后有条件地重新打开该类并向该类添加其他字段和验证,具体取决于环境变量。目的是让每个州都有自己的应用程序安装,所以我会STATE设置一个OR并让应用程序使用俄勒冈州的账单规则。

然而,这对我来说已经成为一个巨大的问题。像这样重新打开类在生产中效果很好,但是测试变得非常困难,因为需要在启动时打开该类并且不能禁用测试,除非我以某种方式使用不同的环境变量重新加载整个程序. 我已经通过 Google 和 StackOverflow 进行了搜索,但我没有得到任何关于我正在寻找的最佳实践的结果,要么是因为它们不存在,要么我不知道它的名称。

4

1 回答 1

1

既然你问的是环境变量,为什么不使用环境变量呢?

ENV可以这样做,只需在其中添加适当的状态即可。

>> ENV['State_Code'] = 'FL'
=> "FL"
>> ENV['State_Code']
=> "FL"

根据需要更改它以测试不同的规则。

这具有能够从您的应用程序外部设置的优点,正如ENV从您的环境中读取的那样,这并不奇怪。

于 2013-05-25T22:17:14.480 回答