我们的应用程序使用了许多环境,因此我们可以在不破坏任何东西的情况下试验设置。在一个典型的控制器动作中,我有这样的事情:
def some_action
...
if @foo.development_mode == 'Production'
@settings = SomeHelper::Production.lan(bar)
elsif @foo.development_mode == 'Beta'
@settings = SomeHelper::Beta.lan(nas)
elsif @foo.development_mode == 'Experimental'
@settings = SomeHelper::Experimental.lan(nas)
end
...
end
由于我们有几十个这样的,我想我可以尝试用这样的东西来干掉事情:
@settings = "SomeHelper::#{@foo.development_mode}.lan(bar)"
这显然不起作用 - 我只是得到:
"NasHelper::Production.lan(bar)"
我怎样才能减少这种情况,还是我必须坚持我所拥有的?